On 6/27/12 2:57 PM, Alexander Foremny wrote:
Sweet! Thank you very much!

Just out of curiosity: how does this differ from the following, not
compiling type signature?

library :: forall t. NetworkDescription t (Behavior t String) ->  IO ()

The type:

    (forall a. F a) -> G

is isomorphic to:

    exists a. (F a -> G)

which differs in the obvious way from:

    forall a. (F a -> G)



Or, from a game-theoretic perspective: with the first type it's the callee that gets to decide which type A is; so the caller only knows that such an A exists, but they have no knowledge or control over what it is. Whereas with the latter type, it's the caller that gets to choose A, and the callee has to deal with it no matter which type it is.

--
Live well,
~wren

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to