Using the extension TypeSynonymInstances, you can write such an instance:
instances MyClass String where ...
Using newtype, you can declare such an instance:
newtype Kleisli m a b = Kleisli (a -> m b)
instance MyClass (Kleisli m) where ...
Now I can not do the following:
type Kleisli m a b = a -> m b
instance MyClass (Kleisli m) where ...
Now there is an extension that allows me to do this? If not, what problems prohibit such an extension?
source
share