[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