scala category theory functional programming contravariant functors profunctors adt traversable foldable applicative coyoneda trick comonad monad functor
Ver más