Haskell and principal types
Wed, 10 Oct 2001 18:13:49 +0100
> (Mark Jones's THIH algorithm, as
> well as other algorithms built on W, fails to type some programs
> containing type synonyms).
Are you thinking of the following kind of problem?
type T a = Bool
b :: Eq a => T a
b = True
x = b
Gives in Hugs:
ERROR "Test.hs" (line 8): Unresolved top-level overloading
*** Binding : x
*** Outstanding context : Eq b
The problem is the lazy expansion of type synonyms in the type inference
algorithm. To produce better type error messages a type synoym is only
expanded when it is unified with some different type.
There isn't any problem if you first eagerly expand all type synonyms
and thus eliminate them from your program and then perform type
inference, is there?
Dept. of Computer Science, University of York, York YO10 5DD, UK.
Tel: +44 1904 434756; Fax: +44 1904 432767