úÎ>f:‚B      !"#$%&'()*+,-./0123456789:;<=>?@A experimentalekmett@gmail.com A B f is   if   and C 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.com !DE  ! ! ! 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 F, 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 F, 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 = G (' 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 = H (' 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 = I G (, m s)/:Evaluate a state computation with the given initial state 9 and return the final state, discarding the final value.  / m s = I H (, m s)JK0Uniform lifting of a callCC operation to the new monad. ? This version rolls back to the original state on entering the  continuation. 1In-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.  "#$%&'()*+,-./01%&'()*"#$+,./-01  "#$#$%&'()*+,-./01 experimentalekmett@gmail.com2.A store transformer comonad parameterized by:  g@ - A representable functor used to memoize results for an index Key g  w - The inner comonad. 34BA memoized store comonad parameterized by a representable functor g , where  the representatation of g, Key g is the index of the store. 5KConstruct a store comonad computation from a function and a current index.  (The inverse of 6.)  computation index 60Unwrap a state monad computation as a function.  (The inverse of state.) a store to access initial state 78 2345678 456237823345678 experimentalekmett@gmail.com 9A B f is 9 if : and < witness an isomorphism to (_ -> Value f).  tabulate . index = id  index . tabulate = id  tabulate . return f = return f : ' contramap f (corep g) = corep (g . f) ;Dual to Indexed. <=Dual to Keyed. >?@A 9:;<=>?@A ?=>;<9:@A 9::;<<=>>?@AL          !"#$%&''()*+,,-./0123456789:;;<=>?@ABCDEFGHIJKLMNOPQJKRJSTJSUJVWXYZrepresentable-functors-2.1#Control.Comonad.Representable.Store"Control.Monad.Representable.Reader!Control.Monad.Representable.StateData.Functor.RepresentableData.Functor.Corepresentablecomonads-fd-2.0.2Control.Comonad.Store.Classseeksseekpeekspeekpos mtl-2.0.1.0Control.Monad.Reader.ClasslocalaskControl.Monad.State.Classgetsmodifyputget RepresentabletabulatefmapRep mapWithKeyReppureRepbindRepbindWithKeyRepaskReplocalRepapRep zipWithRep zipWithKeyRep distributeRep duplicateRep extendRep extractReprepLensReaderT getReaderTReaderreader runReaderStateT getStateTStatestaterunState evalState execStatemapStatestateT runStateT mapStateT evalStateT execStateT liftCallCC liftCallCC'StoreTStorestorerunStorestoreT runStoreTCorepresentablecorep CoindexedcoindexValuedcontramapWithValueValuecontramapDefaultcontramapWithValueDefaultbaseGHC.BaseFunctor keys-2.1.1.1Data.KeyindexreaderT runReaderTreturn Data.Tuplefstsnd Control.MonadliftMleftAdjunctReprightAdjunctRep