[m-dev.] Re: proposal: user-defined equality predicates
Andrew Bromage
bromage at cs.mu.oz.au
Fri Jun 27 16:20:55 AEST 1997
G'day.
Fergus Henderson wrote:
> Right. This problem is the reason why every discussion I've had on
> this topic over the last few years has ended in "oh, well, non-canonical
> types would be nice, but I can't see any way to do them cleanly...".
>
> The solution to this problem is to make deconstructions cc_multi.
> Any time you attempt to examine the representation, then conceptually
> speaking the implementation non-deterministically picks a representation.
> This ensures that (X = Y) => (p(X) <=> p(Y)).
>
> <happy smile>
As I pointed out in a message which I just sent off, the current
compiler accepts this:
<<
:- func f(int) = int is cc_multi.
:- func g(int) = int is det.
g(X) = f(X).
>>
Either it doesn't solve the problem or the current determinism
checker is broken.
Cheers,
Andrew Bromage
More information about the developers
mailing list