[m-dev.] implicit purity promises

Ralph Becket rafe at csse.unimelb.edu.au
Wed Feb 18 12:59:10 AEDT 2009


Ian MacLarty, Wednesday, 18 February 2009:
> On Tue, Feb 17, 2009 at 11:55 PM, Julien Fischer
> <juliensf at csse.unimelb.edu.au> wrote:
> >
> > Hi,
> >
> > promise_{pure,semipure,impure}_implicit were always a nasty
> > hack (and a bad idea IMO).  Now that their principle user
> > (G12) has moved over to use explicitly threaded state, can
> > we please get rid of them?
> >
> 
> While you're at it, could you get rid of, or at least rename, promise_impure?
> 
> For me a "promise" is there to tell the compiler something it cannot
> automatically infer.  Purity inference is conservative, so if the
> compiler infers a goal is pure then it must be pure unless there is a
> bug in the compiler or the user lied somewhere.  The user should never
> need to "promise" that a goal is impure.
> 
> Could we change it to something like treat_as_impure, or otherwise
> just get rid of it?

Sure.  Just use impure_true to add impurity where necessary.
--------------------------------------------------------------------------
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