Haskell 98 distributive functors -- dual to Traversable.
