Return-Path: <John.Harrison-request@cl.cam.ac.uk>
Delivery-Date: 
Received: from leopard.cs.byu.edu (no rfc931) by swan.cl.cam.ac.uk 
          with SMTP (PP-6.5) outside ac.uk; Fri, 6 Jan 1995 15:43:13 +0000
Received: by leopard.cs.byu.edu (1.38.193.4/16.2) id AA02100;
          Fri, 6 Jan 1995 08:38:14 -0700
Sender: info-hol-request@lal.cs.byu.edu
Errors-To: info-hol-request@lal.cs.byu.edu
Precedence: bulk
Received: from crl.dec.com by leopard.cs.byu.edu with SMTP (1.38.193.4/16.2) 
          id AA02096; Fri, 6 Jan 1995 08:38:11 -0700
Received: by crl.dec.com; id AA24734; Fri, 6 Jan 95 10:31:09 -0500
Received: by easynet.crl.dec.com; id AA26201; Fri, 6 Jan 95 10:24:54 -0500
Message-Id: <9501061524.AA26201@easynet.crl.dec.com>
Received: from ricks.enet; by crl.enet; Fri, 6 Jan 95 10:31:08 EST
Date: Fri, 6 Jan 95 10:31:08 EST
From: "Tim Leonard, DTN 225-5809, HLO2-3/C11" <leonard@ricks.enet.dec.com>
To: info-hol@leopard.cs.byu.edu
Apparently-To: info-hol@leopard.cs.byu.edu
Subject: Re: Difficulties with large terms

David Shepherd says:

  Basically, what is need is not an exact "=" function but a "fast
  approximation" which only returns true if the terms are equal but may
  return false negatives if it can't quickly determine equality.

Since ML has exceptions, you might alternatively define your fast equal to
return a boolean quickly, or fail.  It can be useful to have a "fast or
fail" form of all sorts of things, not just equality tests.  It's a way of
defining caches, for example.
