data Foo = Bar -- a { foo :: Baz -- b , bars :: Bizzz -- c } -- d deriving (Show, Eq, Monad, Functor, Traversable, Foldable) -- e