V)      !"#$%&'((C) 2011-2016 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalportableSafe:QR distribute derived from a ) type%This can be used to easily produce a  Distributive instance for a type with a ) instance, tdata V2 a = V2 a a deriving (Show, Functor, Generic1) instance Distributive V2' where distribute = genericDistribute (C) 2011-2016 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalportableSafe:QR  This is the categorical dual of *._Due to the lack of non-trivial comonoids in Haskell, we can restrict ourselves to requiring a +< rather than some Coapplicative class. Categorically every  9 functor is actually a right adjoint, and so it must be  RepresentableW endofunctor and preserve all limits. This is a fancy way of saying it isomorphic to (->) x for some x.NTo be distributable a container will need to have a way to consistently zip a potentially infinite number of copies of itself. This effectively means that the holes in all values of that type, must have the same cardinality, fixed sized vectors, infinite streams, functions, etc. and no extra information to try to merge together.  The dual of distribute [(+1),(+2)] 1[2,3]   =   ,   .   = ,   f =   . - f - f = . .   (/ . f) -   .   f = 0 .   (1 . f)  The dual of    = - 2 .   . 3   =   . 4 f  The dual of   f = - f .    The dual of   f = - f .   $ is a viable default definition for - given a   instance defined in terms of  .  !"#$%&'(     !"#$%&'(5      !"#$%&'()*+,-./01231415615715819:19;1<=1<>1?@1?A15BC)distributive-0.5.1-4wRKEAmvln6AIQ79vaFedcData.Distributive.GenericData.DistributiveData.Traversable sequenceAsequencetraversemapM GDistributive gdistributegenericDistribute$fGDistributiveM1$fGDistributiveRec1$fGDistributivePar1$fGDistributive:.:$fGDistributive:*:$fGDistributiveU1 Distributive distributecollect distributeMcollectM cotraversecomapM fmapCollect$fDistributiveM1$fDistributiveRec1$fDistributivePar1$fDistributive:.:$fDistributive:*:$fDistributiveU1$fDistributiveComplex$fDistributiveLast$fDistributiveFirst$fDistributiveMax$fDistributiveMin$fDistributiveSum$fDistributiveProduct$fDistributiveDual$fDistributiveReverse$fDistributiveBackwards$fDistributiveProduct0$fDistributiveCompose$fDistributiveIdentityT$fDistributiveReaderT$fDistributive(->)$fDistributiveTagged$fDistributiveProxy$fDistributiveIdentitybase GHC.GenericsGeneric1 TraversableGHC.BaseFunctoridfmapData.Functor.Identity runIdentityIdentityData.Functor.Compose getComposeComposeControl.Applicative unwrapMonad WrapMonadliftM