distributive and representable functors - haskell | Upit