[m-rev.] Handle polymorphic inequality goals

Ralph Becket rafe at cs.mu.OZ.AU
Fri Oct 25 16:25:40 AEST 2002


After discussion with Fergus, we've come to the following decision:

- Keep `<', `=<' etc. as module definable operators for int, float etc.
  with the appropiate semantics (IEEE or whatever.)

- Move the definitions of `@<' etc. from prolog.m to builtin.m with
  the understanding that X @< Y <=> compare((<), X, Y) etc.

- Resurrect Simon's change to support types with user-defined compare/3
  behaviour.

- It's not clear that adding an (in, in, in) is semidet mode to
  compare/3 will gain us very much under these circumstances.

- Add a function

  	:- func ordering(T, T) = comparison_result.

	ordering(X, Y) = R :- compare(R, X, Y).

- Ralph (not a bullet point.)
--------------------------------------------------------------------------
mercury-reviews mailing list
post:  mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the reviews mailing list