úÎ>:<@      !"#$%&'()*+,-./0123456789:;<=>? experimentalekmett@gmail.com A @ f is   if   and A witness an isomorphism to (->) x.  tabulate . index = id  index . tabulate = id  tabulate . return f = return f  ' fmap f . tabulate = tabulate . fmap f RWe extend lens across a representable functor, due to the preservation of limits.       experimentalekmett@gmail.comBC  experimentalekmett@gmail.com ,A state transformer monad parameterized by:  g? - A representable functor used to memoize results for a state Key g  m - The inner monad. The D, function leaves the state unchanged, while >>= uses B the final state of the first computation as the initial state of  the second. !"#@A memoized state monad parameterized by a representable functor g , where  the representatation of g, Key g is the state to carry. The D, function leaves the state unchanged, while >>= uses B the final state of the first computation as the initial state of  the second. $5Construct a state monad computation from a function.  (The inverse of %.) pure state transformer %equivalent state-passing computation %0Unwrap a state monad computation as a function.  (The inverse of $.) %state-passing computation to execute initial state return value and final state &:Evaluate a state computation with the given initial state 9 and return the final value, discarding the final state.  & m s = E (% m s)%state-passing computation to execute initial value &return value of the state computation ':Evaluate a state computation with the given initial state 9 and return the final state, discarding the final value.  ' m s = F (% m s)%state-passing computation to execute initial value  final state (AMap both the return value and final state of a computation using  the given function.  % (( f m) = f . % m)*+,:Evaluate a state computation with the given initial state 9 and return the final value, discarding the final state.  , m s = G E (* m s)-:Evaluate a state computation with the given initial state 9 and return the final state, discarding the final value.  - m s = G F (* m s)HI.Uniform lifting of a callCC 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. C This version uses the current state on entering the continuation. 6 It does not satisfy the laws of a monad transformer.  !"#$%&'()*+,-./#$%&'( !")*,-+./   !"!"#$%&'()*+,-./ experimentalekmett@gmail.com0.A store transformer comonad parameterized by:  g@ - A representable functor used to memoize results for an index Key g  w - The inner comonad. 12BA memoized store comonad parameterized by a representable functor g , where  the representatation of g, Key g is the index of the store. 3KConstruct a store comonad computation from a function and a current index.  (The inverse of 4.)  computation index 40Unwrap a state monad computation as a function.  (The inverse of state.) a store to access initial state 56 0123456 234015601123456 experimentalekmett@gmail.com 7A @ f is 7 if 8 and : witness an isomorphism to (_ -> Value f).  tabulate . index = id  index . tabulate = id  tabulate . return f = return f 8 ' contramap f (corep g) = corep (g . f) 9Dual to Indexed. :;Dual to Keyed. <=>? 789:;<=>? =;<9:78>? 7889::;<<=>?J          !"#$%%&'()**+,-./01234567899:;<=>?@ABCDEFGHIJKLMNOHIPHQRHQSHTUVWXrepresentable-functors-1.8.0#Control.Comonad.Representable.Store"Control.Monad.Representable.Reader!Control.Monad.Representable.StateData.Functor.RepresentableData.Functor.Corepresentablecomonads-fd-1.8.0Control.Comonad.Store.Classseeksseekpeekspeekpos mtl-2.0.1.0Control.Monad.Reader.ClasslocalaskControl.Monad.State.Classgetsmodifyputget RepresentabletabulatefmapRep mapWithKeyReppureRepbindRepbindWithKeyRepaskReplocalRepapRep distributeRep duplicateRep extendRep extractReprepLensReaderT getReaderTReaderreader runReaderStateT getStateTStatestaterunState evalState execStatemapStatestateT runStateT mapStateT evalStateT execStateT liftCallCC liftCallCC'StoreTStorestorerunStorestoreT runStoreTCorepresentablecorep CoindexedcoindexValuedcontramapWithValueValuecontramapDefaultcontramapWithValueDefaultbaseGHC.BaseFunctor keys-1.8.0Data.KeyindexreaderT runReaderTreturn Data.Tuplefstsnd Control.MonadliftMleftAdjunctReprightAdjunctRep