Derive Functor, Foldable, Traversable.