I'm puzzled that the following is accepted. Is some sort of greatest
fixed point computation used for instances?
{-# OPTIONS_GHC -fglasgow-exts #-}
module M where
class C a b where c :: a -> b -> Bool
instance C b b => C (Maybe a) b where c x y = c y y
f :: Maybe a -> Bool
f x = c x x