[Haskell-cafe] type inference and named fields
lennart at augustsson.net
Thu Jun 23 16:42:41 EDT 2005
It's true that GADTs does just that. But only if you use them.
And they are not part of Haskell. :)
Jacques Carette wrote:
> I was under the impression that, in ghc 6.4 at least, GADTs did just
> that: use information gained by matching on the type constructor to
> refine types. I sort-of expected that the extension to pattern matching
> would follow.
> Or is that a nice paper waiting to be written?
> Lennart Augustsson <lennart at augustsson.net> wrote:
>> A somewhat similar problem exists even without fields:
>> foo :: Either a b -> Either () b
>> foo (Left _) = Left ()
>> foo x@(Right _) = x
>> Since Haskell type checking doesn't use the information gained
>> by pattern matching to refine types we just have to accept that
>> some perfectly safe programs don't type check.
>> -- Lennart
More information about the Haskell-Cafe