Thu, 3 May 2001 15:26:38 -0600, Alastair Reid <[EMAIL PROTECTED]> pisze:

>> You can always use 'case' instead of 'let' for variable bindings.
> 
> Except, of course, for top level bindings which is where the
> monomorphism restriction is usually most noticable.

Right, but an explicit monomorphic type signature would ensure that
it's computed once. Type signatures on toplevel bindings are a good
idea anyway, and there is no ambiguity for implicit parameters which
must yield a function-like binding.

> Unless I missed something, reason (2) prevents us from completely
> getting rid of the restriction even if we are willing to ignore (1).

Ok. Let's keep (2) and remove (1).

ghc -fno-monomorphism-restriction allows polymorphis cases like (2)
and they do create ambiguous types like Read a => String. I would treat
it as a bug: removing monomorphism restriction should not go that far.
Haskell 98 doesn't allow removing it for pattern bindings by supplying
a type signature.

Here is a crazy idea: either of these
    ~x  = ...
    x@_ = ...
creates a pattern binding, so it's a way of writing it without a type
signature if there was no monomorphic restriction :-)

-- 
 __("<  Marcin Kowalczyk * [EMAIL PROTECTED] http://qrczak.ids.net.pl/
 \__/
  ^^                      SYGNATURA ZASTĘPCZA
QRCZAK


_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to