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.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to