
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