On 15-Jul-1998, Alex Ferguson <[EMAIL PROTECTED]> wrote:
> 
> Fergus Henderson writes of:
> > the monomorphism restriction (which exists for a similar reason,
> > to ensure termination of type inference).
> 
> Is this true?  The rationale normally given for it by its advocates
> (boo, hiss) seems invariably the "no re-evaluation of CAFs" mantra.

Thanks to some discussion with Mark Jones, I realized that what I was
calling "the monomorphism restriction" is actually a completely
different restriction to the one everyone else here was discussing.
The one I was talking about is perhaps better called the "monomorphic
recursion" restriction: Haskell only allows polymorphic recursion if
you give an explicit type declaration.  This is described in section
4.4.1 of the Haskell report

        | However, to ensure that type inference
        | is still possible, the defining occurrence, and all uses of f
        | within its declaration group must have the same monomorphic type

That is the restriction which Mercury does not have, which can lead
to non-termination.

This is of course a completely different thing to "The monomorphism
restriction" discussed in section 4.5.5.

Sorry for my misuse of terminology, and apologies for any confusion
that resulted!

-- 
Fergus Henderson <[EMAIL PROTECTED]>  |  "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh>  |  of excellence is a lethal habit"
PGP: finger [EMAIL PROTECTED]        |     -- the last words of T. S. Garp.


Reply via email to