Why is the following not allowed?

{-# 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.

-- Andrew