module T6 where

data X = X | Y

class Test a where
  f :: a -> a
  f = h

  g :: a

  h :: a -> a
  h = f

  i :: a

  {-# MINIMAL f, g, i | g, h #-}

instance Test X where
  f X = X
  f Y = Y
  i = undefined
  g = _