[m-dev.] Currying library and generator module
Ralph Becket
rbeck at microsoft.com
Wed Jan 19 03:54:42 AEDT 2000
For better or worse, I've attached a module curry.m which
implements functions cy1/2 up to cy4321/5 where each function
has a signature of the form
:- func cy4321(func(T1, T2, T3, T4) = T, T4, T3, T2, T1) = T.
and an implementation of the form
cy4321(F, X4, X3, X2, X1) = F(X1, X2, X3, X4).
So it's det fns only, chaps'n'chapesses, although it would be
trivial to extend it to cover semidet fns as well.
Cheers,
Ralph
p.s. gencurry.m defines a function
:- func int `..` int = list(int).
which is essentially an eager version of Haskel's `..'. I
think this should have a place in some utility library if
there isn't an analogue of it around already. It'd probably
be worth adding the declaration to allow accumulator
introduction.
begin 600 curry.m
M.BT@;6]D=6QE(&-U<G)Y+ at T*#0HZ+2!I;G1E<F9A8V4N#0H-"CHM(&9U;F,@
M8WDQ*&9U;F,H5#$I(#T at 5"P at 5#$I(#T at 5"X-"CHM(&9U;F, at 8WDQ,BAF=6YC
M*%0Q+"!4,BD@/2!4+"!4,2P at 5#(I(#T at 5"X-"CHM(&9U;F, at 8WDR,2AF=6YC
M*%0Q+"!4,BD@/2!4+"!4,BP at 5#$I(#T at 5"X-"CHM(&9U;F, at 8WDQ,C,H9G5N
M8RA4,2P at 5#(L(%0S*2`](%0L(%0Q+"!4,BP at 5#,I(#T at 5"X-"CHM(&9U;F,@
M8WDQ,S(H9G5N8RA4,2P at 5#(L(%0S*2`](%0L(%0Q+"!4,RP at 5#(I(#T at 5"X-
M"CHM(&9U;F, at 8WDR,3,H9G5N8RA4,2P at 5#(L(%0S*2`](%0L(%0R+"!4,2P@
M5#,I(#T at 5"X-"CHM(&9U;F, at 8WDR,S$H9G5N8RA4,2P at 5#(L(%0S*2`](%0L
M(%0R+"!4,RP at 5#$I(#T at 5"X-"CHM(&9U;F, at 8WDS,3(H9G5N8RA4,2P at 5#(L
M(%0S*2`](%0L(%0S+"!4,2P at 5#(I(#T at 5"X-"CHM(&9U;F, at 8WDS,C$H9G5N
M8RA4,2P at 5#(L(%0S*2`](%0L(%0S+"!4,BP at 5#$I(#T at 5"X-"CHM(&9U;F,@
M8WDQ,C,T*&9U;F,H5#$L(%0R+"!4,RP at 5#0I(#T at 5"P at 5#$L(%0R+"!4,RP@
M5#0I(#T at 5"X-"CHM(&9U;F, at 8WDQ,C0S*&9U;F,H5#$L(%0R+"!4,RP at 5#0I
M(#T at 5"P at 5#$L(%0R+"!4-"P at 5#,I(#T at 5"X-"CHM(&9U;F, at 8WDQ,S(T*&9U
M;F,H5#$L(%0R+"!4,RP at 5#0I(#T at 5"P at 5#$L(%0S+"!4,BP at 5#0I(#T at 5"X-
M"CHM(&9U;F, at 8WDQ,S0R*&9U;F,H5#$L(%0R+"!4,RP at 5#0I(#T at 5"P at 5#$L
M(%0S+"!4-"P at 5#(I(#T at 5"X-"CHM(&9U;F, at 8WDQ-#(S*&9U;F,H5#$L(%0R
M+"!4,RP at 5#0I(#T at 5"P at 5#$L(%0T+"!4,BP at 5#,I(#T at 5"X-"CHM(&9U;F,@
M8WDQ-#,R*&9U;F,H5#$L(%0R+"!4,RP at 5#0I(#T at 5"P at 5#$L(%0T+"!4,RP@
M5#(I(#T at 5"X-"CHM(&9U;F, at 8WDR,3,T*&9U;F,H5#$L(%0R+"!4,RP at 5#0I
M(#T at 5"P at 5#(L(%0Q+"!4,RP at 5#0I(#T at 5"X-"CHM(&9U;F, at 8WDR,30S*&9U
M;F,H5#$L(%0R+"!4,RP at 5#0I(#T at 5"P at 5#(L(%0Q+"!4-"P at 5#,I(#T at 5"X-
M"CHM(&9U;F, at 8WDR,S$T*&9U;F,H5#$L(%0R+"!4,RP at 5#0I(#T at 5"P at 5#(L
M(%0S+"!4,2P at 5#0I(#T at 5"X-"CHM(&9U;F, at 8WDR,S0Q*&9U;F,H5#$L(%0R
M+"!4,RP at 5#0I(#T at 5"P at 5#(L(%0S+"!4-"P at 5#$I(#T at 5"X-"CHM(&9U;F,@
M8WDR-#$S*&9U;F,H5#$L(%0R+"!4,RP at 5#0I(#T at 5"P at 5#(L(%0T+"!4,2P@
M5#,I(#T at 5"X-"CHM(&9U;F, at 8WDR-#,Q*&9U;F,H5#$L(%0R+"!4,RP at 5#0I
M(#T at 5"P at 5#(L(%0T+"!4,RP at 5#$I(#T at 5"X-"CHM(&9U;F, at 8WDS,3(T*&9U
M;F,H5#$L(%0R+"!4,RP at 5#0I(#T at 5"P at 5#,L(%0Q+"!4,BP at 5#0I(#T at 5"X-
M"CHM(&9U;F, at 8WDS,30R*&9U;F,H5#$L(%0R+"!4,RP at 5#0I(#T at 5"P at 5#,L
M(%0Q+"!4-"P at 5#(I(#T at 5"X-"CHM(&9U;F, at 8WDS,C$T*&9U;F,H5#$L(%0R
M+"!4,RP at 5#0I(#T at 5"P at 5#,L(%0R+"!4,2P at 5#0I(#T at 5"X-"CHM(&9U;F,@
M8WDS,C0Q*&9U;F,H5#$L(%0R+"!4,RP at 5#0I(#T at 5"P at 5#,L(%0R+"!4-"P@
M5#$I(#T at 5"X-"CHM(&9U;F, at 8WDS-#$R*&9U;F,H5#$L(%0R+"!4,RP at 5#0I
M(#T at 5"P at 5#,L(%0T+"!4,2P at 5#(I(#T at 5"X-"CHM(&9U;F, at 8WDS-#(Q*&9U
M;F,H5#$L(%0R+"!4,RP at 5#0I(#T at 5"P at 5#,L(%0T+"!4,BP at 5#$I(#T at 5"X-
M"CHM(&9U;F, at 8WDT,3(S*&9U;F,H5#$L(%0R+"!4,RP at 5#0I(#T at 5"P at 5#0L
M(%0Q+"!4,BP at 5#,I(#T at 5"X-"CHM(&9U;F, at 8WDT,3,R*&9U;F,H5#$L(%0R
M+"!4,RP at 5#0I(#T at 5"P at 5#0L(%0Q+"!4,RP at 5#(I(#T at 5"X-"CHM(&9U;F,@
M8WDT,C$S*&9U;F,H5#$L(%0R+"!4,RP at 5#0I(#T at 5"P at 5#0L(%0R+"!4,2P@
M5#,I(#T at 5"X-"CHM(&9U;F, at 8WDT,C,Q*&9U;F,H5#$L(%0R+"!4,RP at 5#0I
M(#T at 5"P at 5#0L(%0R+"!4,RP at 5#$I(#T at 5"X-"CHM(&9U;F, at 8WDT,S$R*&9U
M;F,H5#$L(%0R+"!4,RP at 5#0I(#T at 5"P at 5#0L(%0S+"!4,2P at 5#(I(#T at 5"X-
M"CHM(&9U;F, at 8WDT,S(Q*&9U;F,H5#$L(%0R+"!4,RP at 5#0I(#T at 5"P at 5#0L
M(%0S+"!4,BP at 5#$I(#T at 5"X-"@T*.BT@:6UP;&5M96YT871I;VXN#0H-"F-Y
M,2A&+"!8,2D@/2!&*%@Q*2X-"F-Y,3(H1BP at 6#$L(%@R*2`]($8H6#$L(%@R
M*2X-"F-Y,C$H1BP at 6#(L(%@Q*2`]($8H6#$L(%@R*2X-"F-Y,3(S*$8L(%@Q
M+"!8,BP at 6#,I(#T at 1BA8,2P at 6#(L(%@S*2X-"F-Y,3,R*$8L(%@Q+"!8,RP@
M6#(I(#T at 1BA8,2P at 6#(L(%@S*2X-"F-Y,C$S*$8L(%@R+"!8,2P at 6#,I(#T@
M1BA8,2P at 6#(L(%@S*2X-"F-Y,C,Q*$8L(%@R+"!8,RP at 6#$I(#T at 1BA8,2P@
M6#(L(%@S*2X-"F-Y,S$R*$8L(%@S+"!8,2P at 6#(I(#T at 1BA8,2P at 6#(L(%@S
M*2X-"F-Y,S(Q*$8L(%@S+"!8,BP at 6#$I(#T at 1BA8,2P at 6#(L(%@S*2X-"F-Y
M,3(S-"A&+"!8,2P at 6#(L(%@S+"!8-"D@/2!&*%@Q+"!8,BP at 6#,L(%@T*2X-
M"F-Y,3(T,RA&+"!8,2P at 6#(L(%@T+"!8,RD@/2!&*%@Q+"!8,BP at 6#,L(%@T
M*2X-"F-Y,3,R-"A&+"!8,2P at 6#,L(%@R+"!8-"D@/2!&*%@Q+"!8,BP at 6#,L
M(%@T*2X-"F-Y,3,T,BA&+"!8,2P at 6#,L(%@T+"!8,BD@/2!&*%@Q+"!8,BP@
M6#,L(%@T*2X-"F-Y,30R,RA&+"!8,2P at 6#0L(%@R+"!8,RD@/2!&*%@Q+"!8
M,BP at 6#,L(%@T*2X-"F-Y,30S,BA&+"!8,2P at 6#0L(%@S+"!8,BD@/2!&*%@Q
M+"!8,BP at 6#,L(%@T*2X-"F-Y,C$S-"A&+"!8,BP at 6#$L(%@S+"!8-"D@/2!&
M*%@Q+"!8,BP at 6#,L(%@T*2X-"F-Y,C$T,RA&+"!8,BP at 6#$L(%@T+"!8,RD@
M/2!&*%@Q+"!8,BP at 6#,L(%@T*2X-"F-Y,C,Q-"A&+"!8,BP at 6#,L(%@Q+"!8
M-"D@/2!&*%@Q+"!8,BP at 6#,L(%@T*2X-"F-Y,C,T,2A&+"!8,BP at 6#,L(%@T
M+"!8,2D@/2!&*%@Q+"!8,BP at 6#,L(%@T*2X-"F-Y,C0Q,RA&+"!8,BP at 6#0L
M(%@Q+"!8,RD@/2!&*%@Q+"!8,BP at 6#,L(%@T*2X-"F-Y,C0S,2A&+"!8,BP@
M6#0L(%@S+"!8,2D@/2!&*%@Q+"!8,BP at 6#,L(%@T*2X-"F-Y,S$R-"A&+"!8
M,RP at 6#$L(%@R+"!8-"D@/2!&*%@Q+"!8,BP at 6#,L(%@T*2X-"F-Y,S$T,BA&
M+"!8,RP at 6#$L(%@T+"!8,BD@/2!&*%@Q+"!8,BP at 6#,L(%@T*2X-"F-Y,S(Q
M-"A&+"!8,RP at 6#(L(%@Q+"!8-"D@/2!&*%@Q+"!8,BP at 6#,L(%@T*2X-"F-Y
M,S(T,2A&+"!8,RP at 6#(L(%@T+"!8,2D@/2!&*%@Q+"!8,BP at 6#,L(%@T*2X-
M"F-Y,S0Q,BA&+"!8,RP at 6#0L(%@Q+"!8,BD@/2!&*%@Q+"!8,BP at 6#,L(%@T
M*2X-"F-Y,S0R,2A&+"!8,RP at 6#0L(%@R+"!8,2D@/2!&*%@Q+"!8,BP at 6#,L
M(%@T*2X-"F-Y-#$R,RA&+"!8-"P at 6#$L(%@R+"!8,RD@/2!&*%@Q+"!8,BP@
M6#,L(%@T*2X-"F-Y-#$S,BA&+"!8-"P at 6#$L(%@S+"!8,BD@/2!&*%@Q+"!8
M,BP at 6#,L(%@T*2X-"F-Y-#(Q,RA&+"!8-"P at 6#(L(%@Q+"!8,RD@/2!&*%@Q
M+"!8,BP at 6#,L(%@T*2X-"F-Y-#(S,2A&+"!8-"P at 6#(L(%@S+"!8,2D@/2!&
M*%@Q+"!8,BP at 6#,L(%@T*2X-"F-Y-#,Q,BA&+"!8-"P at 6#,L(%@Q+"!8,BD@
M/2!&*%@Q+"!8,BP at 6#,L(%@T*2X-"F-Y-#,R,2A&+"!8-"P at 6#,L(%@R+"!8
9,2D@/2!&*%@Q+"!8,BP at 6#,L(%@T*2X-"@==
`
end
begin 600 gencurry.m
M)2`M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM("4-"B4 at 9V5N8W5R
M<GDN;0T*)2!286QP:"!"96-K970@/')B96-K0&UI8W)O<V]F="YC;VT^#0HE
M($UO;B!*86X@,3<@,38Z,38Z,3$@(#(P,#`-"B4@=FDZ('1S/30@<W<]-"!E
M="!T=STP('=M/3`-"B4-"B4 at 5&AI<R!P<F]G<F%M(&=E;F5R871E<R!T:&4@
M8W5R<GDN;2!C=7)R>6EN9R!S=7!P;W)T(&UO9'5L92!T97AT+ at T*)0T*)2!)
M('-U<'!O<V4@:68@;VYE('=E<F4 at 82!R96%L('!U<FES="!O;F4@=V]U;&0@
M=7-E('1H92!T97)M(&UO9'5L90T*)2!T;R!C;VYS=')U8W0@=&AE<V4@=&AI
M;F=S(&%N9"!T:&5N('5S92!T97)M7VEO+B`@0G5T($D at 8V]U;&1N)W0-"B4@
M8F4 at 8F]T:&5R960N+BX@(%1O(&UA:V4@=7`@9F]R('1H870 at 22!I;F-L=61E
M('1H92!M;VYO=&]N:6,-"B4@*&DN92X@<&]I;G1L97-S*2!C=7)R>6EN9R!F
M=6YC=&EO;G,@=&AA="!D;VXG="!P97)M=71E('1H96ER#0HE(&%R9W5M96YT
M<RX-"B4-"B4 at 6%A8('-E92!T:&4 at 6%A8(&-O;6UE;G0 at 8F5L;W<@+2!))W9E
M(&%L<V\@:&%R9'=I<F5D(&EN('1H92!U<'!E<@T*)2!A<FET>2!O9B!F=6YC
M=&EO;G, at 8V]N<VED97)E9"X-"B4 at +2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2`E#0H-"CHM(&UO9'5L92!G96YC=7)R>2X-"@T*.BT@:6YT97)F
M86-E+ at T*#0HZ+2!I;7!O<G1?;6]D=6QE(&EO+ at T*#0HZ+2!P<F5D(&UA:6XH
M:6]?7W-T871E+"!I;U]?<W1A=&4I+ at T*.BT@;6]D92!M86EN*&1I+"!U;RD@
M:7, at 9&5T+ at T*#0HE("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T@
M)0T*#0HZ+2!I;7!L96UE;G1A=&EO;BX-"@T*.BT@:6UP;W)T7VUO9'5L92!L
M:7-T+"!I;G0L(&5X8V5P=&EO;BP@<W1R:6YG+"!S=&1?=71I;"X-"@T*;6%I
M;B`M+3X-"B`@("`@("`@)2!86%@@2&%R9'=I<F5D(&-O;G-T86YT(0T*("`@
M('L at 86QL7W!E<FUS7V]F7S%?:U]T;U]N*#0L($%L;%!E<FUS7S%?2U]4;U].
M*2!]+`T*#0H@("`@:6]?7W=R:71E7W-T<FEN9R at B.BT@;6]D=6QE(&-U<G)Y
M+EQN7&XB*2P-"@T*("`@(&EO7U]W<FET95]S=')I;F<H(CHM(&EN=&5R9F%C
M92Y<;EQN(BDL#0H-"B`@("!L:7-T7U]F;VQD;"AI;U]?=W)I=&5?<W1R:6YG
M+"!G96Y?9G5N8U]D96-L<RA!;&Q097)M<U\Q7TM?5&]?3BDI+`T*("`@(&EO
M7U]N;"P-"@T*("`@(&EO7U]W<FET95]S=')I;F<H(CHM(&EM<&QE;65N=&%T
M:6]N+EQN7&XB*2P-"@T*("`@(&QI<W1?7V9O;&1L*&EO7U]W<FET95]S=')I
M;F<L(&=E;E]F=6YC7V1E9FYS*$%L;%!E<FUS7S%?2U]4;U].*2DN#0H-"B4@
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2`E#0H-"CHM(&9U;F,@
M9V5N7V9U;F-?9&5C;',H;&ES="AL:7-T*&EN="DI*2`](&QI<W0H<W1R:6YG
M*2X-"@T*9V5N7V9U;F-?9&5C;',H06QL4&5R;7-?,5]+7U1O7TXI(#T-"B`@
M("!L:7-T7U]M87`H#0H@("`@("`@("AF=6YC*%!E<FTI(#T-"B`@("`@("`@
M("`@(&=E;E]F=6YC7V1E8VPH9V5N7VYA;64H4&5R;2DL(#$@8"XN8"!L:7-T
M7U]L96YG=&@H4&5R;2DL(%!E<FTI#0H@("`@("`@("DL#0H@("`@("`@($%L
M;%!E<FUS7S%?2U]4;U].#0H@("`@*2X-"@T*)2`M+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM("4-"@T*.BT at 9G5N8R!G96Y?9G5N8U]D969N<RAL
M:7-T*&QI<W0H:6YT*2DI(#T@;&ES="AS=')I;F<I+ at T*#0IG96Y?9G5N8U]D
M969N<RA!;&Q097)M<U\Q7TM?5&]?3BD@/0T*("`@(&QI<W1?7VUA<"@-"B`@
M("`@("`@*&9U;F,H4&5R;2D@/0T*("`@("`@("`@("`@9V5N7V9U;F-?9&5F
M;BAG96Y?;F%M92A097)M*2P@,2!@+BY@(&QI<W1?7VQE;F=T:"A097)M*2P@
M4&5R;2D-"B`@("`@("`@*2P-"B`@("`@("`@06QL4&5R;7-?,5]+7U1O7TX-
M"B`@("`I+ at T*#0HE("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T@
M)0T*#0HZ+2!P<F5D(&%L;%]P97)M<U]O9E\Q7VM?=&]?;BAI;G0L(&QI<W0H
M;&ES="AI;G0I*2DN#0HZ+2!M;V1E(&%L;%]P97)M<U]O9E\Q7VM?=&]?;BAI
M;BP@;W5T*2!I<R!D970N#0H-"F%L;%]P97)M<U]O9E\Q7VM?=&]?;BA.+"!!
M;&Q097)M<U\Q7TM?5&]?3BD at .BT-"B`@("!L:7-T7U]M87`H86QL7W!E<FUS
M7V]F7S%?;BP@,2!@+BY@($XL($%L;%!E<FUS7S%?2U]4;U].7TQI<W1S*2P-
M"B`@("!L:7-T7U]C;VYD96YS92A!;&Q097)M<U\Q7TM?5&]?3E],:7-T<RP@
M06QL4&5R;7-?,5]+7U1O7TXI+ at T*#0HE("TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2T@)0T*#0HZ+2!P<F5D(&%L;%]P97)M<U]O9E\Q7VXH:6YT
M+"!L:7-T*&QI<W0H:6YT*2DI+ at T*.BT@;6]D92!A;&Q?<&5R;7-?;V9?,5]N
M*&EN+"!O=70I(&ES(&1E="X-"@T*86QL7W!E<FUS7V]F7S%?;BA.+"!!;&Q0
M97)M<U\Q7TXI(#HM#0H@("`@<V]L=71I;VYS*&QI<W1?7W!E<FTH,2!@+BY@
M($XI+"!!;&Q097)M<U\Q7TXI+ at T*#0HE("TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2T@)0T*#0HZ+2!F=6YC(&EN="!@+BY@(&EN="`](&QI<W0H
M:6YT*2X-"@T*3&\@8"XN8"!(:2`]#0H@("`@*"!I9B!,;R`]/"!(:2!T:&5N
M(%M,;R!\("A,;R`K(#$I(&`N+F`@2&E=(&5L<V4 at 6UT@*2X-"@T*)2`M+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM("4-"@T*.BT at 9G5N8R!G96Y?
M;F%M92AL:7-T*&EN="DI(#T@<W1R:6YG+ at T*#0IG96Y?;F%M92A8<RD@/0T*
M("`@('-T<FEN9U]?87!P96YD7VQI<W0H6R)C>2(@?"!L:7-T7U]M87`H<W1R
M:6YG7U]I;G1?=&]?<W1R:6YG+"!8<RE=*2X-"@T*)2`M+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM("4-"@T*.BT at 9G5N8R!G96Y?9G5N8U]D96-L
M*'-T<FEN9RP@;&ES="AI;G0I+"!L:7-T*&EN="DI(#T@<W1R:6YG+ at T*#0IG
M96Y?9G5N8U]D96-L*$YA;64L(%5N4&5R;2P at 4&5R;2D@/0T*("`@('-T<FEN
M9U]?87!P96YD7VQI<W0H6PT*("`@("`@("`B.BT at 9G5N8R`B+`T*("`@("`@
M("!.86UE+`T*("`@("`@("`B*"(L#0H@("`@("`@(")F=6YC*"(L(&EN='-?
M=&]?9&5L:6UI=&5D7W-T<FEN9R at B5"(L(%5N4&5R;2DL("(I(#T at 5"P@(BP-
M"B`@("`@("`@:6YT<U]T;U]D96QI;6ET961?<W1R:6YG*")4(BP at 4&5R;2DL
M#0H@("`@("`@("(I(#T at 5"Y<;B(-"B`@("!=*2X-"@T*)2`M+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM("4-"@T*.BT at 9G5N8R!G96Y?9G5N8U]D
M969N*'-T<FEN9RP@;&ES="AI;G0I+"!L:7-T*&EN="DI(#T@<W1R:6YG+ at T*
M#0IG96Y?9G5N8U]D969N*$YA;64L(%5N4&5R;2P at 4&5R;2D@/0T*("`@('-T
M<FEN9U]?87!P96YD7VQI<W0H6PT*("`@("`@("!.86UE+`T*("`@("`@("`B
M*$8L("(L(&EN='-?=&]?9&5L:6UI=&5D7W-T<FEN9R at B6"(L(%!E<FTI+"`B
M*2`]("(L#0H@("`@("`@(")&*"(L(&EN='-?=&]?9&5L:6UI=&5D7W-T<FEN
M9R at B6"(L(%5N4&5R;2DL("(I+EQN(@T*("`@(%TI+ at T*#0HE("TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T@)0T*#0HZ+2!F=6YC(&EN='-?=&]?
M9&5L:6UI=&5D7W-T<FEN9RAS=')I;F<L(&QI<W0H:6YT*2D@/2!S=')I;F<N
M#0H-"FEN='-?=&]?9&5L:6UI=&5D7W-T<FEN9RA?+"!;72D@/2`B(BX-"@T*
M:6YT<U]T;U]D96QI;6ET961?<W1R:6YG*%!R92P at 6U@@?"!8<UTI(#T-"B`@
M("!S=')I;F=?7V%P<&5N9%]L:7-T*%L-"B`@("`@("`@<W1R:6YG7U]F;W)M
M870H(B5S)60B+"!;<RA0<F4I+"!I*%@I72D@?`T*("`@("`@("!L:7-T7U]M
M87`H*&9U;F,H62D@/2!S=')I;F=?7V9O<FUA="@B+"`E<R5D(BP at 6W,H4')E
M*2P@:2A9*5TI*2P at 6',I#0H@("`@72DN#0H-"B4 at +2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
4+2TM+2TM+2TM+2TM+2TM+2`E#0H=
`
end
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to: mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions: mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------
More information about the developers
mailing list