
module M2 
(
  C(..),
  T(T, g)
) 
where

class C a where
  f :: a -> a

data T = T {
  fT :: T,
  g :: T
}

instance C T where
  f = fT
