
8 Apr
2006
8 Apr
'06
3:07 p.m.
On 2006-04-08, C Rodrigues
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 -><-