úÎE<äG      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF experimentalekmett@gmail.com Safe-InferedA G f is  if  and H 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. .  IJKLMNOPQRSTUVWXYZ[\]^_`    +   IJKLMNOPQRSTUVWXYZ[\]^_` experimentalekmett@gmail.com Safe-Infered!!"#$%&'abcdefghijklmnopqrstuvwxyz  !"#$%&' $%!"#&'!"#$%&'abcdefghijklmnopqrstuvwxyz 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 {, 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 {, 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 |.) -:Evaluate a state computation with the given initial state 9 and return the final value, discarding the final state.  - m s = } (, m s).:Evaluate a state computation with the given initial state 9 and return the final state, discarding the final value.  . m s = ~ (, m s)/AMap both the return value and final state of a computation using  the given function.  , (/ f m) = f . , m3:Evaluate a state computation with the given initial state 9 and return the final value, discarding the final state.  3 m s =  } (1 m s)4:Evaluate a state computation with the given initial state 9 and return the final state, discarding the final value.  4 m s =  ~ (1 m s)5Uniform lifting of a callCC operation to the new monad. ? This version rolls back to the original state on entering the  continuation. 6In-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 /0123456€‚ƒ„…†‡ˆ‰Š‹ ()*+,-./0123456+,-./()*0134256  ()*+,-./0123456€‚ƒ„…†‡ˆ‰Š‹ experimentalekmett@gmail.com Safe-Infered7.A store transformer comonad parameterized by:  g@ - A representable functor used to memoize results for an index Key g  w - The inner comonad. 9BA memoized store comonad parameterized by a representable functor g , where  the representatation of g, Key g is the index of the store. :KConstruct a store comonad computation from a function and a current index.  (The inverse of ;.) ;0Unwrap a state monad computation as a function.  (The inverse of state.) 789: computation index ;a store to access initial state <=ŒŽ‘’“”•– 789:;<= 9:;78<=789:;<=ŒŽ‘’“”•– experimentalekmett@gmail.com Safe-Infered>A G f is > if ? and A 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. BDual to Keyed. >?@ABCDEF—˜™š›œžŸ  >?@ABCDEF DBC@A>?EF>?@ABCDEF—˜™š›œžŸ ¡          !"#$%&'()*++,-./01123456789:;<=>??@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚hƒ„NO… †N‡ˆN‡‰NŠ‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­representable-functors-2.5#Control.Comonad.Representable.Store"Control.Monad.Representable.Reader!Control.Monad.Representable.StateData.Functor.RepresentableData.Functor.Corepresentablecomonads-fd-2.1.2Control.Comonad.Store.Classseeksseekpeekspeekpos mtl-2.1.2Control.Monad.Reader.ClasslocalaskControl.Monad.State.ClassgetsmodifyputgetRepunrep RepresentabletabulatefmapRep mapWithKeyReppureRepbindRepbindWithKeyRepaskReplocalRepapRep zipWithRep zipWithKeyRep distributeRep duplicateRep extendRep extractReprepLensliftR2liftR3ReaderT getReaderTReader runReaderreaderT runReaderTStateT getStateTStaterunState evalState execStatemapStatestateT runStateT mapStateT evalStateT execStateT liftCallCC liftCallCC'StoreTStorestorerunStorestoreT runStoreTCorepresentablecorep CoindexedcoindexValuedcontramapWithValueValuecontramapDefaultcontramapWithValueDefaultbaseGHC.BaseFunctorkeys-2.2Data.Keyindex$fComonadTransRep $fComonadRep $fExtendRep$fZipWithKeyRep$fZipRep$fMonadReaderaRep $fMonadRep $fBindRep$fDistributiveRep$fApplicativeRep $fApplyRep $fFunctorRep $fLookupRep $fKeyedRep$fIndexableRep$fRepresentableRep$fRepresentableCofree$fRepresentableProduct$fRepresentableTracedT$fRepresentableCompose$fRepresentableReaderT$fRepresentable(->)$fRepresentableIdentityT$fRepresentableIdentity$fTraversableWithKey1ReaderT$fTraversableWithKeyReaderT$fTraversable1ReaderT$fTraversableReaderT$fFoldableWithKey1ReaderT$fFoldableWithKeyReaderT$fFoldable1ReaderT$fFoldableReaderT$fAdjustableReaderT$fMonadWriterwReaderT$fMonadIOReaderT$fComonadReaderT$fZipWithKeyReaderT $fZipReaderT$fExtendReaderT$fLookupReaderT$fKeyedReaderT$fDistributiveReaderT$fMonadTransReaderT$fMonadReaderT $fBindReaderT$fApplicativeReaderT$fApplyReaderT$fIndexableReaderT$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