[Haskell-cafe] type families and type signatures

Lennart Augustsson lennart at augustsson.net
Wed Apr 9 14:39:18 EDT 2008

On Wed, Apr 9, 2008 at 8:53 AM, Martin Sulzmann <martin.sulzmann at gmail.com>

> Lennart, you said
> > (It's also pretty easy to fix the problem.)
> >
> What do you mean? Easy to fix the type checker, or easy to fix the program
> by inserting annotations
> to guide the type checker?
> Martin

I'm referring to the situation where the type inferred by the type checker
is illegal for me to put into the program.
In our example we can fix this in two ways, by making foo' illegal even when
it has no signature, or making foo' legal even when it has a signature.

To make it illegal:  If foo' has no type signature, infer a type for foo',
insert this type as a signature and type check again.  If this fails, foo'
is illegal.

To make it legal: If foo' with a type signature doesn't type check, try to
infer a type without a signature.  If this succeeds then check that the type
that was inferred is alpha-convertible to the original signature.  If it is,
accept foo'; the signature doesn't add any information.

Either of these two option would be much preferable to the current (broken)
situation where the inferred signature is illegal.

  -- Lennart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20080409/5467d786/attachment-0001.htm

More information about the Haskell-Cafe mailing list