{-# LANGUAGE ExistentialQuantification, ExplicitForAll, RankNTypes, FlexibleInstances #-}
class Class a where
test :: a -> Bool
instance Class (forall m. m -> m) where
test _ = True
main = do
putStrLn $ test id
Is there a reason that this is forbidden? Just curious.