[m-rev.] for review: reorder list of allowed goals in reference manual

Ian MacLarty maclarty at cs.mu.OZ.AU
Sun Mar 12 20:58:34 AEDT 2006


For review by anyone.

Estimated hours takne: 0.1
Branches: main

doc/reference_manual.texi:
	Move all the promise goals to just before the predicate call goal in
	the list of allowed goals.  The call goal must still be at the end
	because it refers to all the previous goals.

Index: doc/reference_manual.texi
===================================================================
RCS file: /home/mercury1/repository/mercury/doc/reference_manual.texi,v
retrieving revision 1.345
diff -u -r1.345 reference_manual.texi
--- doc/reference_manual.texi	8 Mar 2006 02:25:38 -0000	1.345
+++ doc/reference_manual.texi	12 Mar 2006 09:52:43 -0000
@@ -642,55 +642,6 @@
 @var{Goal} must be a valid goal.
 This is an abbreviation for @samp{not (some @var{Vars} not @var{Goal})}.
 
- at item @code{promise_pure @var{Goal}}
-A purity cast.
- at var{Goal} must be a valid goal.
-This goal promises that @var{Goal} implements a pure interface,
-even though it may include impure and semipure components.
-
- at item @code{promise_semipure @var{Goal}}
-A purity cast.
- at var{Goal} must be a valid goal.
-This goal promises that @var{Goal} implements a semipure interface,
-even though it may include impure components.
-
- at item @code{promise_impure @var{Goal}}
-A purity cast.
- at var{Goal} must be a valid goal.
-This goal instructs the compiler to treat @var{Goal} as though it were impure,
-regardless of its actual purity.
-
- at item @code{promise_pure_implicit @var{Goal}}
-Equivalent to @code{promise_pure @var{Goal}}, except that purity annotations on
-semipure and impure subgoals in @var{Goal} are optional.
-
- at item @code{promise_semipure_implicit @var{Goal}}
-Equivalent to @code{promise_semipure @var{Goal}}, except that purity
-annotations on semipure and impure subgoals in @var{Goal} are optional.
-
- at item @code{promise_impure_implicit @var{Goal}}
-Equivalent to @code{promise_impure @var{Goal}}, except that purity annotations
-on semipure and impure subgoals in @var{Goal} are optional.
-
- at item @code{promise_equivalent_solutions @var{Vars} @var{Goal}}
-A determinism cast.
- at var{Vars} must be a list of variables.
- at var{Goal} must be a valid goal.
-This goal promises that @var{Vars}
-is the set of variables bound by @var{Goal},
-and that while @var{Goal} may have more than one solution,
-all of these solutions are equivalent
-with respect to the equality theories of the variables in @var{Vars}.
-It is an error for @var{Vars} to include a variable not bound by @var{Goal}
-or for @var{Goal} to bind a non-local variable
-that is not listed in @var{Vars}.
-If @var{Goal} has determinism @samp{multi} or @samp{cc_multi} then
- at code{promise_equivalent_solutions @var{Vars} @var{Goal}}
-has determinism @samp{det}.
-If @var{Goal} has determinism @samp{nondet} or @samp{cc_nondet} then
- at code{promise_equivalent_solutions @var{Vars} @var{Goal}}
-has determinism @samp{semidet}.
-
 @item @code{@var{Goal1}, @var{Goal2}}
 A conjunction.
 @var{Goal1} and @var{Goal2} must be valid goals.
@@ -777,6 +728,55 @@
 higher-order call using the @code{call/N} syntax, i.e.@: 
 @samp{call(Var)}, @samp{call(Var, Arg1)}, etc.
 
+ at item @code{promise_pure @var{Goal}}
+A purity cast.
+ at var{Goal} must be a valid goal.
+This goal promises that @var{Goal} implements a pure interface,
+even though it may include impure and semipure components.
+
+ at item @code{promise_semipure @var{Goal}}
+A purity cast.
+ at var{Goal} must be a valid goal.
+This goal promises that @var{Goal} implements a semipure interface,
+even though it may include impure components.
+
+ at item @code{promise_impure @var{Goal}}
+A purity cast.
+ at var{Goal} must be a valid goal.
+This goal instructs the compiler to treat @var{Goal} as though it were impure,
+regardless of its actual purity.
+
+ at item @code{promise_pure_implicit @var{Goal}}
+Equivalent to @code{promise_pure @var{Goal}}, except that purity annotations on
+semipure and impure subgoals in @var{Goal} are optional.
+
+ at item @code{promise_semipure_implicit @var{Goal}}
+Equivalent to @code{promise_semipure @var{Goal}}, except that purity
+annotations on semipure and impure subgoals in @var{Goal} are optional.
+
+ at item @code{promise_impure_implicit @var{Goal}}
+Equivalent to @code{promise_impure @var{Goal}}, except that purity annotations
+on semipure and impure subgoals in @var{Goal} are optional.
+
+ at item @code{promise_equivalent_solutions @var{Vars} @var{Goal}}
+A determinism cast.
+ at var{Vars} must be a list of variables.
+ at var{Goal} must be a valid goal.
+This goal promises that @var{Vars}
+is the set of variables bound by @var{Goal},
+and that while @var{Goal} may have more than one solution,
+all of these solutions are equivalent
+with respect to the equality theories of the variables in @var{Vars}.
+It is an error for @var{Vars} to include a variable not bound by @var{Goal}
+or for @var{Goal} to bind a non-local variable
+that is not listed in @var{Vars}.
+If @var{Goal} has determinism @samp{multi} or @samp{cc_multi} then
+ at code{promise_equivalent_solutions @var{Vars} @var{Goal}}
+has determinism @samp{det}.
+If @var{Goal} has determinism @samp{nondet} or @samp{cc_nondet} then
+ at code{promise_equivalent_solutions @var{Vars} @var{Goal}}
+has determinism @samp{semidet}.
+
 @item @code{@var{Call}}
 Any goal which does not match any of the above forms
 must be a predicate call.
--------------------------------------------------------------------------
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