[m-dev.] Re: semidet predicate with io__state and state variable syntax bug

Zoltan Somogyi zs at cs.mu.OZ.AU
Wed Mar 24 11:36:37 AEDT 2004

On 24-Mar-2004, Ralph Becket <rafe at cs.mu.OZ.AU> wrote:
> I had a quick look at this one using the latest ROTD installed on ceres and
> (a) it does indeed compile when it shouldn't, 
> (b) the problem does not appear to be in the state variable
> transformation.

I reported a similar bug to Fergus a few months ago. He said that this bug
is a choice in the unique modes checking algorithm, which could be either
too loose or too tight, and which is currently set to too loose; he said
the just tight enough test is too hard to do. Fergus, you want to expand
on that?

I guess we could augment determinism analysis to check whether a predicate
with I/O state args has a determinism with can_fail=yes. Although detecting
the case where an I/O state is hidden inside an argument may be too difficult
in the presence of polymorphic types, just checking whether an argument
is of type io__state should be simple enough. This would get 98% of the
needed error checking capability at very low cost.

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