Use GHC extensions for deriving Functor, Foldable, and Traversable