[m-dev.] Fw: Re: Impurity annotations on clauses

Julien Fischer juliensf at csse.unimelb.edu.au
Mon Jan 22 22:20:26 AEDT 2007


On Mon, 22 Jan 2007, Mark Brown wrote:

> Fourth, situation 8 could be obviated by introducing a sequential conjunction
> operator.

I think this preferable to say requiring the module to be compiled with
--no-reorder-conj** for at least two reasons:

(1) --no-reorder-conj requires you to remember to actually compile with
     that option enabled; an operator doesn't.

(2) a sequential conjunction operator is a much finer grained solution
    than --no-reorder-conj (which has module level granularity).

For similar reasons it would also be worth supporting sequential
disjunction.  We have code in the standard library that relies on
being compiled with --no-reorder-disj.

** In the absence of impurity declarations this is currently the only
other way to ensure that code of the sort that Mark is referring to
compiles correctly.  (You could also use an if-then-else to simulate
the effect of sequential conjunction but that is ugly.)

Julien.
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at csse.unimelb.edu.au
Administrative Queries: owner-mercury-developers at csse.unimelb.edu.au
Subscriptions:          mercury-developers-request at csse.unimelb.edu.au
--------------------------------------------------------------------------



More information about the developers mailing list