Hi,
For example, code like this:
newtype Sealed = Sealed { unSealed :: forall a. SomeClass a => TVar a }
mkSealed :: (SomeClass a) => a -> IO Sealed
mkSealed = fmap Sealed . newTVarIO
When compiling, I would get:
Expected type: a -> IO (forall a1. SomeClass a1 => TVar a1)
Actual type: a -> IO (TVar a)
How to correctly restrict type parameter a here?
--
竹密岂妨流水过
山高哪阻野云飞
And for G+, please use magiclouds#
gmail.com.