B;j@      !"#$%&'()*+,-./0123456789:;<=>? experimentalekmett@gmail.com Safe-Infered 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.  BCDEFGHI     BCDEFGHI experimentalekmett@gmail.com Safe-Infered  JKLMNOPQRSTUVWXYZ[\]^_`abcd    JKLMNOPQRSTUVWXYZ[\]^_`abcd experimentalekmett@gmail.com Safe-Infered !,A state transformer monad parameterized by:  g? - A representable functor used to memoize results for a state Key g  m - The inner monad. The e, 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 e, function leaves the state unchanged, while >>= uses B the final state of the first computation as the initial state of  the second. %0Unwrap a state monad computation as a function.  (The inverse of f.) &:Evaluate a state computation with the given initial state 9 and return the final value, discarding the final state.  & m s = g (% m s)':Evaluate a state computation with the given initial state 9 and return the final state, discarding the final value.  ' m s = h (% m s)(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).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. !"#$%%state-passing computation to execute initial state return value and final state &%state-passing computation to execute initial value &return value of the state computation '%state-passing computation to execute initial value  final state ()*+,-./jklmnopqrstu !"#$%&'()*+,-./$%&'(!"#)*,-+./  !"#$%&'()*+,-./jklmnopqrstu experimentalekmett@gmail.com Safe-Infered0.A store transformer comonad parameterized by:  g@ - A representable functor used to memoize results for an index Key g  w - The inner comonad. 2BA 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.) 40Unwrap a state monad computation as a function.  (The inverse of state.) 0123 computation index 4a store to access initial state 56vwxyz{|}~ 0123456 23401560123456vwxyz{|}~ experimentalekmett@gmail.com Safe-Infered7A @ 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:;<=>? 789:;<=>? =;<9:78>?789:;<=>?          !"#$%&''()*++,-./01234567899:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcRdefghijklmnoHIp qHrsHrtHuvwxyz{|}~representable-functors-2.2.1#Control.Comonad.Representable.Store"Control.Monad.Representable.Reader!Control.Monad.Representable.StateData.Functor.RepresentableData.Functor.Corepresentablecomonads-fd-2.1Control.Comonad.Store.Classseeksseekpeekspeekposmtl-2.1Control.Monad.Reader.ClasslocalaskControl.Monad.State.Classgetsmodifyputget RepresentabletabulatefmapRep mapWithKeyReppureRepbindRepbindWithKeyRepaskReplocalRepapRep zipWithRep zipWithKeyRep distributeRep duplicateRep extendRep extractReprepLensReaderT getReaderTReader runReaderStateT getStateTStaterunState evalState execStatemapStatestateT runStateT mapStateT evalStateT execStateT liftCallCC liftCallCC'StoreTStorestorerunStorestoreT runStoreTCorepresentablecorep CoindexedcoindexValuedcontramapWithValueValuecontramapDefaultcontramapWithValueDefaultbaseGHC.BaseFunctor keys-2.1.3Data.Keyindex$fRepresentableCofree$fRepresentableProduct$fRepresentableTracedT$fRepresentableCompose$fRepresentableReaderT$fRepresentable(->)$fRepresentableIdentityT$fRepresentableIdentity$fMonadWriterwReaderT$fMonadIOReaderT$fComonadReaderT$fZipWithKeyReaderT $fZipReaderT$fExtendReaderT$fTraversableWithKey1ReaderT$fTraversableWithKeyReaderT$fTraversable1ReaderT$fTraversableReaderT$fFoldableWithKey1ReaderT$fFoldableWithKeyReaderT$fFoldable1ReaderT$fFoldableReaderT$fLookupReaderT$fAdjustableReaderT$fIndexableReaderT$fKeyedReaderT$fDistributiveReaderT$fMonadTransReaderT$fMonadReadereReaderT$fMonadReaderT $fBindReaderT$fApplicativeReaderT$fApplyReaderT$fFunctorReaderTreturnstate Data.Tuplefstsnd Control.MonadliftM$fMonadFreefStateT$fMonadContStateT$fMonadWriterwStateT$fMonadReadereStateT$fMonadStatesStateT$fMonadTransStateT$fBindTransStateT $fMonadStateT $fBindStateT$fApplicativeStateT $fApplyStateT$fFunctorStateT$fComonadCofreefStoreT$fComonadEnvmStoreT$fComonadTracedmStoreT$fComonadHoistStoreT$fComonadTransStoreT$fComonadStoreT$fExtendStoreT$fApplicativeStoreT $fApplyStoreT$fFunctorStoreT$fComonadStoresStoreT$fCoindexedCoproduct$fCorepresentableProduct$fCoindexedProduct$fValuedProduct$fCorepresentablePredicate$fCoindexedPredicate$fValuedPredicate$fCorepresentableOp $fCoindexedOp $fValuedOp