B=:@      !"#$%&'()*+,-./0123456789:;<=>? experimentalekmett@gmail.comNoneA @ 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.comNone"JKLMNOPQRSTUVWXYZ[\]^_`abcdef  JKLMNOPQRSTUVWXYZ[\]^_`abcdef experimentalekmett@gmail.comNone !,A state transformer monad parameterized by:  g? - A representable functor used to memoize results for a state Key g  m - The inner monad. The g, 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 g, 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 h.) &:Evaluate a state computation with the given initial state 9 and return the final value, discarding the final state.  & m s = i (% m s)':Evaluate a state computation with the given initial state 9 and return the final state, discarding the final value.  ' m s = j (% 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 = k i (* m s)-:Evaluate a state computation with the given initial state 9 and return the final state, discarding the final value.  - m s = k j (* 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 ()*+,-lm./nopqrstuvwxy !"#$%&'()*+,-./$%&'(!"#)*,-+./ !"#$%&'()*+,-lm./nopqrstuvwxy experimentalekmett@gmail.comNone0.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 56z{|}~ 0123456 23401560123456z{|}~ experimentalekmett@gmail.comNone7A @ 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[\]^_`abcdeRfghijklmnopqHIr &sHtuHtvHwxyz{|}~representable-functors-2.2.1.1#Control.Comonad.Representable.Store"Control.Monad.Representable.ReaderData.Functor.Representable!Control.Monad.Representable.StateData.Functor.Corepresentablecomonads-fd-2.1.2Control.Comonad.Store.Classseeksseekpeekspeekpos mtl-2.1.2Control.Monad.Reader.Classlocalask RepresentabletabulatefmapRep mapWithKeyReppureRepbindRepbindWithKeyRepaskReplocalRepapRep zipWithRep zipWithKeyRep distributeRep duplicateRep extendRep extractReprepLensReaderT getReaderTReader runReaderControl.Monad.State.ClassputgetmodifygetsStateT getStateTStaterunState evalState execStatemapStatestateT runStateT mapStateT evalStateT execStateT liftCallCC liftCallCC'StoreTStorestorerunStorestoreT runStoreTCorepresentablecorep CoindexedcoindexValuedcontramapWithValueValuecontramapDefaultcontramapWithValueDefaultbaseGHC.BaseFunctor keys-2.1.3.2Data.Keyindex$fRepresentableCofree$fRepresentableProduct$fRepresentableTracedT$fRepresentableCompose$fRepresentableReaderT$fRepresentable(->)$fRepresentableIdentityT$fRepresentableIdentityreaderT runReaderT$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.MonadliftMleftAdjunctReprightAdjunctRep$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