u>i|      !"#$%&'()*+,-./0123456789:;<=>?@A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _`abcdefghijklmnopqrstuvwxyz{ (c) Edward Kmett 2011-2014BSD3ekmett@gmail.com experimental Safe-Inferred234=KA | functor f is  if  and  witness an isomorphism to  (_ -> Rep f).  .  "a id  .  "a id  } f ( g) =  (g . f)   f p "a  $ ~ ( p)  . f (C) 2011-2013 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalMPTCs, fundeps Trustworthy6   (C) 2011-2013 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalMPTCs Trustworthy68HMAn adjunction from Hask^op to Hask  (f a) b ~ Hask a (g b) #   =  " ! =  Any adjunction from Hask to Hask^op would indirectly permit unsafePerformIO, and therefore does not exist.$ Represent a | functor that has a left adjointThis gives rise to the  Cont Bool This  gives rise to the Cont   !"#$% !"#$% !"#$% !"#$%(C) 2011 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalMPTCs, fundeps Trustworthy6 &'()*+&'()*+)+*&'(&'()*+(c) Edward Kmett 2011-2014BSD3ekmett@gmail.com experimentalNone -2346=K/A  f is / if 1 and 2 witness an isomorphism to (->) x.Every   is actually /.Every / & from Hask to Hask is a right adjoint. 1 . 2 "a id 2 . 1 "a id 1 .  f "a  f 1  f . 1 "a 1 .  f ),-./0123456789:;<=>?@,-./0123456789:;<=>?@/012,-.3984?@567:;<=>$,-./0123456789:;<=>?@ 2008-2013 Edward KmettBSDEdward Kmett <ekmett@gmail.com> experimentalrank 2 types, MPTCs, fundeps Trustworthy68HMA$An adjunction between Hask and Hask.Minimal definition: both B and C or both D and Ee, subject to the constraints imposed by the default definitions that the following laws should hold. munit = leftAdjunct id counit = rightAdjunct id leftAdjunct f = fmap f . unit rightAdjunct f = counit . fmap f.Any implementation is required to ensure that D and E witness an isomorphism from  Nat (f a, b) to  Nat (a, g b) .rightAdjunct unit = id leftAdjunct counit = idFSEvery right adjoint is representable by its left adjoint applied to a unit elementUse this definition and the primitives in Data.Functor.Representable to meet the requirements of the superclasses of Representable.G5This definition admits a default definition for the 2> method of 'Index", one of the superclasses of Representable.M>A right adjoint functor admits an intrinsic notion of zippingN*Every functor in Haskell permits unzippingP:A left adjoint must be inhabited, or we can derive bottom.Q;And a left adjoint must be inhabited by exactly one elementR!Every functor in Haskell permits  uncozippingABCDEFGHIJKLMNOPQRABCDEFGHIJKLMNOPQRABCDEFGHMNPOQRKLIJABCDEFGHIJKLMNOPQR (C) 2011-2013 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalMPTCs, fundeps Trustworthy6 STUVWXSTUVWXVXWSTUSTUVWX (C) 2011-2013 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalMPTCs, fundeps Trustworthy6hExploiting this instance requires that we have the missing Traversables for Identity, (,)e and IdentityT YZ[\]^YZ[\]^\^]YZ[YZ[\]^=(c) Edward Kmett 2011, (c) Conal Elliott 2008BSD3ekmett@gmail.com experimentalNone !"2346=JK_`abcde  ,-./0123456789:;<=>?@_`abcde bc_`ade _`abcde'(c) Edward Kmett & Sjoerd Visscher 2011BSD3ekmett@gmail.com experimentalNone 2346=K f+A state transformer monad parameterized by:g? - A representable functor used to memoize results for a state Rep gm - The inner monad.The , function leaves the state unchanged, while >>=T uses the final state of the first computation as the initial state of the second.i@A memoized state monad parameterized by a representable functor g!, where the representatation of g, Rep g is the state to carry.The , function leaves the state unchanged, while >>=T uses the final state of the first computation as the initial state of the second.jAUnwrap a state monad computation as a function. (The inverse of  .)krEvaluate a state computation with the given initial state and return the final value, discarding the final state. k m s =  (j m s)lrEvaluate a state computation with the given initial state and return the final state, discarding the final value. l m s =  (j m s)mUMap both the return value and final state of a computation using the given function. j (m f m) = f . j mqrEvaluate a state computation with the given initial state and return the final value, discarding the final state. q m s =   (o m s)rrEvaluate a state computation with the given initial state and return the final state, discarding the final value. r m s =   (o m s)sUniform lifting of a callCCj operation to the new monad. This version rolls back to the original state on entering the continuation.tIn-situ lifting of a callCC operation to the new monad. This version uses the current state on entering the continuation. It does not satisfy the laws of a monad transformer.fghij$state-passing computation to execute initial statereturn value and final statek$state-passing computation to execute initial value%return value of the state computationl$state-passing computation to execute initial value final statemnopqrst fghijklmnopqrstijklmfghnoqrpst fghijklmnopqrst'(c) Edward Kmett & Sjoerd Visscher 2011BSD3ekmett@gmail.com experimentalNone 2346=Ku-A store transformer comonad parameterized by:g@ - A representable functor used to memoize results for an index Rep gw - The inner comonad.wBA memoized store comonad parameterized by a representable functor g!, where the representatation of g, Rep g is the index of the store.x\Construct a store comonad computation from a function and a current index. (The inverse of y.)yAUnwrap a state monad computation as a function. (The inverse of state.)uvwx computationindexya store to access initial statez{uvwxyz{wxyuvz{uvwxyz{        !"#$%&&'()*+,-./01234566789:;;< !"#=>?@ABCDEFGHIJ / 0 1 2 3 K L M N O P Q R S T U V W 6 6 7 8 9 : 6 6 7 8 9 :XXYZ[\]^^_`abcdefghijkllmnopqrstrsuvwxvyz{|}~rsvyvyvyvy{ vvvadjunctions-4.0#Control.Comonad.Representable.Store"Control.Monad.Representable.Reader!Control.Monad.Representable.StateData.Functor.Contravariant.RepControl.Monad.Trans.Conts%Data.Functor.Contravariant.Adjunction)Control.Monad.Trans.Contravariant.AdjointData.Functor.RepData.Functor.AdjunctionControl.Comonad.Trans.AdjointControl.Monad.Trans.Adjoint comonad-4.2.2Control.Comonad.Store.Class experimentseeksseekpeekspeekpos ComonadStore mtl-2.1.3.1Control.Monad.Reader.Classreaderlocalask MonadReaderControl.Monad.State.Classstateputget MonadState RepresentableReptabulateindexcontramapWithRep contramapRepContsT runContsTContsContcontrunContcontsrunContscallCC Adjunctionunitcounit leftAdjunct rightAdjunctcontrarepAdjunctioncoindexAdjunctionAdjointT runAdjointTAdjointadjoint runAdjointCounCofmapReppureRepbindRepaskReplocalRepapRep distributeRep duplicatedRep extendedRep duplicateRep extendRep extractRepliftR2liftR3tabulateAdjunctionindexAdjunctionzapWithAdjunctionsplitLunsplitLextractL duplicateLzipRunzipRabsurdL unabsurdLcozipLuncozipLReaderT getReaderTReader runReaderreaderT runReaderTStateT getStateTStaterunState evalState execStatemapStatestateT runStateT mapStateT evalStateT execStateT liftCallCC liftCallCC'StoreTStorestorerunStorestoreT runStoreTcontravariant-0.6.1.1Data.Functor.Contravariant Contravariant contramapbase Data.EithereitherGHC.Baseid$fRepresentableProduct$fRepresentablePredicate$fRepresentableOp$fRepresentableDay$fRepresentableProxy$fMonadTransContsT $fMonadContsT$fApplicativeContsT $fApplyContsT$fFunctorContsTOp$fAdjunctionPredicatePredicateMonad$fAdjunctionOpOp$fMonadAdjointT$fApplicativeAdjointT$fFunctorAdjointTFunctordistributive-0.4.4Data.Distributive Distributivereturnfmap$fComonadTransCo $fComonadCo $fExtendCo$fMonadReaderaCo $fMonadCo$fBindCo$fDistributiveCo$fApplicativeCo $fApplyCo$fRepresentableCo$fRepresentableCofree$fRepresentableTracedT$fRepresentableCompose$fRepresentableReaderT$fRepresentable(->)$fRepresentableIdentityT$fRepresentableTagged$fRepresentableIdentity$fAdjunctionFreeCofree$fAdjunctionCoproductProduct$fAdjunctionComposeCompose$fAdjunctionWriterTTracedT$fAdjunctionEnvTReaderT$fAdjunctionIdentityTIdentityT$fAdjunctionIdentityIdentity$fAdjunction(,)(->)$fComonadTransAdjointT$fComonadAdjointT$fExtendAdjointT$fMonadTransAdjointT$fTraversable1ReaderT$fTraversableReaderT$fFoldable1ReaderT$fFoldableReaderT$fMonadWriterwReaderT$fMonadIOReaderT$fComonadReaderT$fExtendReaderT$fDistributiveReaderT$fMonadTransReaderT$fMonadReaderT $fBindReaderT$fApplicativeReaderT$fApplyReaderT$fFunctorReaderT Data.Tuplefstsnd Control.MonadliftMleftAdjunctReprightAdjunctRep$fMonadFreefStateT$fMonadContStateT$fMonadWriterwStateT$fMonadReadereStateT$fMonadStatesStateT$fMonadTransStateT$fBindTransStateT $fMonadStateT $fBindStateT$fApplicativeStateT $fApplyStateT$fFunctorStateT$fComonadCofreefStoreT$fComonadEnvmStoreT$fComonadTracedmStoreT$fComonadHoistStoreT$fComonadTransStoreT$fComonadStoreT$fExtendStoreT$fApplicativeStoreT$fComonadApplyStoreT $fApplyStoreT$fFunctorStoreT$fComonadStoresStoreT