Meurig Sage wrote:
Hi,
I'm using ghc-4.02 on Windows NT. I downloaded the binary installshield
and the cygwin B20.1. I then compiled up a large program.
The compiled program crashes some of the time with the following error:
...
This problem goes away if I increase the heap size
On 25-Feb-1999, Carl R. Witty [EMAIL PROTECTED] wrote:
Fergus Henderson [EMAIL PROTECTED] writes:
Certainly a language with dependent types should define exactly what
types the type checker will infer. But when generating code, the
compiler ought to be able to make use of more accurate
John Hughes :
Everybody agrees the monomorphism restriction is a pain:
...
So, let's make it visible, in the simplest possible way. Let there be TWO
forms of binding: x = e, and x := e (say). A binding of the form `x = e' is
interpreted using call-by-name, and may of course be overloaded:
This occurs because in the absense of type declarations,
Haskell assumes that any recursion will be monomorphic,
which is in general not necessarily the case.
As I'm sure you know, type inference is in general impossible
for polymorphic recursion, and since Haskell insists on
decidable type
The key issue in Lennart's example, I think, is monomorphic recursion.
For the function
f _ =
let y = f 'a'
in undefined
Haskell incorrectly (IMHO) infers the type `f :: Char - a'
instead of the more general type `f :: b - a'.
This occurs because in the absense