1 2 3 4 5 6 7 8 9
-- !! This is fine in Haskell 1.4 -- module Foo ( Baz(..) ) where class Baz a where opx :: Int -> Bar -> a -> a data Bar = Bar X data X = Y