On 2006-04-08, C Rodrigues <[EMAIL PROTECTED]> wrote: > This counterintuitive typechecking result came up when I wrote a wrapper > around runST. Is there some limitation of HM with respect to type checking > pattern matching? > > data X a b = X (a -> a) > run :: forall a. (forall b. X a b) -> a -> a > -- This definition doesn't pass the typechecker > run (X f) = f > -- But this definition works > run x = (\(X f) -> f) x
Have you tried run (X f) x = f x ? -- Aaron Denney -><- _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
