[mercury-users] hi & a feq queries

Donald Syme Donald.Syme at cl.cam.ac.uk
Wed Aug 19 07:26:37 AEST 1998

Re nesting of constructors in switches: thanks for your help.
The reference manual could be updated to reflect this.

The (small) problem that made me go check out the manual (and subsequently
led to my stupid question) was switch detection when existentials
guard the cases, e.g. :

:- module junk.
:- interface.
:- import_module list.
:- pred h(list(int) :: in, int :: out) is det.
:- implementation.

h(A,B) :- (A = [], B = 1 ; 
          (some [H,T] (A = [H|T], B = 2))).

I guess I only do this sort of thing in generated
code, and I can get around it by  lifting the "some" up above the 
switch (taking a union of all variables in all the patterns).

Thanks again,

More information about the users mailing list