úΘportable provisionalEdward Kmett <ekmett@gmail.com> Safe-Inferred This is the categorical dual of  Traversable. EDue to the lack of non-trivial comonoids in Haskell, we can restrict  ourselves to requiring a  rather than / some Coapplicative class. Categorically every  8 functor is actually a right adjoint, and so it must be  Representable G endofunctor and preserve all limits. This is a fancy way of saying it  isomorphic to `(->) x` for some x. Minimal complete definition:  or  HTo be distributable a container will need to have a way to consistently I zip a potentially infinite number of copies of itself. This effectively E means that the holes in all values of that type, must have the same E cardinality, fixed sized vectors, infinite streams, functions, etc. 4 and no extra information to try to merge together.  The dual of  distribute [(+1),(+2)] 1[2,3]  =    f =  .   f The dual of   =     .  .    =  .   f The dual of   f =   f .  The dual of   f =   f .          distributive-0.3.2Data.DistributiveData.Traversable sequenceAsequencetraversemapM Distributive distributecollect distributeMcollectM cotraversecomapMbaseGHC.BaseFunctoridfmapControl.Applicative unwrapMonad WrapMonad Control.MonadliftM$fDistributiveReverse$fDistributiveBackwards$fDistributiveProduct$fDistributiveCompose$fDistributiveIdentityT$fDistributiveReaderT$fDistributive(->)$fDistributiveIdentity