[Haskell-cafe] Inferred type not most general?

Malcolm Wallace Malcolm.Wallace at cs.york.ac.uk
Sat Jun 10 06:06:35 EDT 2006


Greg Buchholz <haskell at sleepingsquirrel.org> writes:

>     tmap :: (b -> a, b -> a) -> Twist b b -> Twist a a 
> 
> ...I'm wondering why they couldn't infer the more general...
> 
>     tmap :: (a -> b, c -> d) -> Twist a c -> Twist b d

Because the latter type involves polymorphic recursion.  Standard H-M
cannot infer a poly recursive type, but Haskell is willing to check it
if you give it a signature.

Regards,
    Malcolm


More information about the Haskell-Cafe mailing list