
9 Feb
2006
9 Feb
'06
1:09 a.m.
Brian Hulley wrote:
Brian Hulley wrote:
Brian Hulley wrote:
f :: (forall a m. a -> m a) -> c -> d -> (m c, m d)
The above is wrong - there is no way to quantify m properly. This must be why intersection types need to be written with "&" after all....
What am I saying! It's right after all, and might be better than the & syntax because it makes the dependency clearer (assuming you can't write a function that is both Int->String and Float->Int)
Last correction! f :: forall m. (forall a. a->m a) -> c -> d -> (m c, m d) Sorry for all this confusion.