0sц      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h ijklmnopqrstuvwxyz{|}~ (c) Edward Kmett 2011-2014BSD3ekmett@gmail.com experimentalNone345>LA  functor f is  if  and  witness an isomorphism to  (_ -> Rep f).  .  "a id  .  "a id   f ( g) =  (g . f)   f p "a  $  ( p)  . f  and # form two halves of an isomorphism./This can be used with the combinators from the lens package.  ::  f => Iso' (a ->  f) (f a) (C) 2011-2013 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalMPTCs, fundepsSafe7   (C) 2011-2013 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalMPTCs Trustworthy79IN An 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.%# and $# form two halves of an isomorphism./This can be used with the combinators from the lens package. % ::   f g => Iso' (b -> f a) (a -> g b)& 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, fundepsSafe7 ()*+,-()*+,-+-,()*()*+,-(c) Edward Kmett 2011-2014BSD3ekmett@gmail.com experimentalNone -3457>L1A  f is 1 if 3 and 4 witness an isomorphism to (->) x.Every   is actually 1.Every 1 & from Hask to Hask is a right adjoint. 3 . 4 "a id 4 . 3 "a id 3 .  "a  3  f . 3 "a 3 .  f 53 and 4# form two halves of an isomorphism./This can be used with the combinators from the lens package. 5 :: 1 f => Iso' (2 f -> a) (f a)4./0123456789:;<=>?@ABCDEFGHI./0123456789:;<=>?@ABCDEFGHI12345./06?>7HI89;:<=CDEFG@AB/./0123456789:;<=>?@ABCDEFGHI 2008-2013 Edward KmettBSDEdward Kmett <ekmett@gmail.com> experimentalrank 2 types, MPTCs, fundeps Trustworthy79IN J$An adjunction between Hask and Hask.Minimal definition: both K and L or both M and Ne, 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 M and N witness an isomorphism from  Nat (f a, b) to  Nat (a, g b) .rightAdjunct unit = id leftAdjunct counit = idOM and N# form two halves of an isomorphism./This can be used with the combinators from the lens package. O :: J f u => Iso' (f a -> b) (a -> u b)PSEvery 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.Q5This definition admits a default definition for the 4> method of 'Index", one of the superclasses of Representable.W>A right adjoint functor admits an intrinsic notion of zippingX*Every functor in Haskell permits unzippingZ:A left adjoint must be inhabited, or we can derive bottom.[;And a left adjoint must be inhabited by exactly one element\!Every functor in Haskell permits  uncozippingJKLMNOPQRSTUVWXYZ[\JKLMNOPQRSTUVWXYZ[\JKLMNOPQRWXZY[\UVSTJKLMNOPQRSTUVWXYZ[\ (C) 2011-2013 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalMPTCs, fundepsSafe7 ]^_`ab]^_`ab`ba]^_]^_`ab (C) 2011-2013 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> provisionalMPTCs, fundepsSafe7hExploiting this instance requires that we have the missing Traversables for Identity, (,)e and IdentityT cdefghcdefghfhgcdecdefgh=(c) Edward Kmett 2011, (c) Conal Elliott 2008BSD3ekmett@gmail.com experimentalNone !"3457>KLijklmno' ./0123456789:;<=>?@ABCDEFGHIijklmno lmijkno ijklmno'(c) Edward Kmett & Sjoerd Visscher 2011BSD3ekmett@gmail.com experimentalNone 3457>L p+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.s@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.tAUnwrap a state monad computation as a function. (The inverse of  .)urEvaluate a state computation with the given initial state and return the final value, discarding the final state. u m s =  (t m s)vrEvaluate a state computation with the given initial state and return the final state, discarding the final value. v m s =  (t m s)wUMap both the return value and final state of a computation using the given function. t (w f m) = f . t m{rEvaluate a state computation with the given initial state and return the final value, discarding the final state. { m s =   (y m s)|rEvaluate a state computation with the given initial state and return the final state, discarding the final value. | m s =   (y m s)}Uniform lifting of a callCCj operation to the new monad. This version rolls back to the original state on entering the continuation.~In-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.pqrst$state-passing computation to execute initial statereturn value and final stateu$state-passing computation to execute initial value%return value of the state computationv$state-passing computation to execute initial value final statewxyz{|}~ pqrstuvwxyz{|}~stuvwpqrxy{|z}~ pqrstuvwxyz{|}~'(c) Edward Kmett & Sjoerd Visscher 2011BSD3ekmett@gmail.com experimentalNone 3457>L-A store transformer comonad parameterized by:g@ - A representable functor used to memoize results for an index Rep gw - The inner comonad.BA memoized store comonad parameterized by a representable functor g!, where the representatation of g, Rep g is the index of the store.\Construct a store comonad computation from a function and a current index. (The inverse of .)AUnwrap a state monad computation as a function. (The inverse of state.) computationindexa store to access initial state        !"#$%&''()*+,-./01234567889:;<==> !"#%?@ABCDEFGHIJKLMNOPQR 0 1 2 3 4 5 S T U V W X Y Z [ \ ] ^ _ 8 8 9 : ; < 8 8 9 : ; <``abcdeffghijklmnopqrsttuvwxyz{|z{}~~z{~~~~ ~~~adjun_3W6nptPLhVe0nBVwERBTFa#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.Adjointcomon_KzU0eCqCMJH43dMJq7UvefControl.Comonad.Store.Class experimentseeksseekpeekspeekpos ComonadStoremtl_KMpng31YRYc5JfMWFZ3FCUControl.Monad.Reader.Classreaderlocalask MonadReaderControl.Monad.State.Classstateputget MonadState RepresentableReptabulateindexcontramapWithRep tabulated contramapRepContsT runContsTContsContcontrunContcontsrunContscallCC Adjunctionunitcounit leftAdjunct rightAdjunct adjunctedcontrarepAdjunctioncoindexAdjunctionAdjointT runAdjointTAdjointadjoint runAdjointCounCofmapReppureRepbindRepmfixRep mzipWithRepmzipRepaskReplocalRepapRep distributeRepduplicateRepBy extendRepBy extractRepBy duplicatedRep extendedRep duplicateRep extendRep extractRepliftR2liftR3tabulateAdjunctionindexAdjunctionzapWithAdjunctionsplitLunsplitLextractL duplicateLzipRunzipRabsurdL unabsurdLcozipLuncozipLReaderT getReaderTReader runReaderreaderT runReaderTStateT getStateTStaterunState evalState execStatemapStatestateT runStateT mapStateT evalStateT execStateT liftCallCC liftCallCC'StoreTStorestorerunStorestoreT runStoreTcontr_LxARs66IWzOGQC8CMWQkcDData.Functor.Contravariant Contravariant contramapbase Data.EithereitherGHC.Baseid$fRepresentableProduct$fRepresentablePredicate$fRepresentableOp$fRepresentableProxy$fMonadTransContsT $fMonadContsT$fApplicativeContsT $fApplyContsT$fFunctorContsTOp$fAdjunctionPredicatePredicateMonad$fAdjunctionOpOp$fMonadAdjointT$fApplicativeAdjointT$fFunctorAdjointTFunctordistr_4i4NFhBShpF6b03t4GzPRBData.Distributive Distributivereturnfmap$fComonadTransCo $fComonadCo $fExtendCo$fMonadReaderaCo $fMonadCo$fBindCo$fDistributiveCo$fApplicativeCo $fApplyCo$fRepresentableCo$fRepresentableComplex$fRepresentableSum$fRepresentableDual$fRepresentableCofree$fRepresentableProduct0$fRepresentableTracedT$fRepresentableCompose$fRepresentableReaderT$fRepresentable(->)$fRepresentableIdentityT$fRepresentableTagged$fRepresentableIdentity$fAdjunctionFreeCofree$fAdjunctionSumProduct$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.TuplefstsndliftMleftAdjunctReprightAdjunctRep$fMonadFreefStateT$fMonadContStateT$fMonadWriterwStateT$fMonadReadereStateT$fMonadStatesStateT$fMonadTransStateT$fBindTransStateT $fMonadStateT $fBindStateT$fApplicativeStateT $fApplyStateT$fFunctorStateT$fComonadCofreefStoreT$fComonadEnvmStoreT$fComonadTracedmStoreT$fComonadHoistStoreT$fComonadTransStoreT$fComonadStoreT$fExtendStoreT$fApplicativeStoreT$fComonadApplyStoreT $fApplyStoreT$fFunctorStoreT$fComonadStoresStoreT