[m-dev.] For review: making terms polymorphic

Fergus Henderson fjh at cs.mu.OZ.AU
Thu Nov 5 16:40:41 AEDT 1998


On 05-Nov-1998, Thomas Charles CONWAY <conway at cs.mu.OZ.AU> wrote:
> Fergus Henderson, you write:
> > 
> > Since the change is not completely backwards compatible, the
> > news file should explain what people will need to do to fix
> > their code.
> 
> How is it incompatible? Existing code shouldn't need changing.

In some places people might need to add calls to term__generic_term,
I think.

> How about this:
> 	% term__generic_term(Term) is true iff `Term' is a term of type
> 	% `term' ie `term(generic)'.
> 	% It is useful because in some instances it doesn't matter what
> 	% the type of a term is, and passing it to this predicate will
> 	% ground the type avoiding unbound type variable warnings.

That's better, thanks.

> +* The types `term', `var', `var_supply' and `varset' are now polymorphic.
> +  This allows one to distinguish between terms, etc. denoting different kinds
> +  of things by giving them different types. The new coercion predicates
> +  listed below allow one to coerce terms, etc between types.

s/etc/etc./

-- 
Fergus Henderson <fjh at cs.mu.oz.au>  |  "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh>  |  of excellence is a lethal habit"
PGP: finger fjh at 128.250.37.3        |     -- the last words of T. S. Garp.



More information about the developers mailing list