| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Proarrow.Promonad.Reader
Synopsis
- data Reader (r :: OPPOSITE k) (a :: k) (b :: k) where
- cotraverseReader :: forall {k} (p :: k +-> k) (r :: k). (Strong k p, SelfAction k, Ob r) => (p :.: Reader ('OP r)) :~> (Reader ('OP r) :.: p)
- dayCounit :: forall {k} (r :: k). (Ob r, Cartesian k) => Day (Writer r) (Reader ('OP r)) ~> ((~>) :: CAT k)
- readerComp :: forall {k} (r :: k) (s :: k). (SymMonoidal k, Ob r, Ob s) => (Reader ('OP r) :.: Reader ('OP s)) ~> Reader ('OP (r ** s))
- readerDay :: forall {k} (r :: k) (s :: k). (SymMonoidal k, Ob r, Ob s) => Day (Reader ('OP r)) (Reader ('OP s)) ~> Reader ('OP (r ** s))
- newtype ReaderT (r :: OPPOSITE k) (p :: k +-> k) (a :: k) (b :: k) where
- runReaderT :: forall {k} p (r :: k) (a :: k) (b :: k). Profunctor p => ReaderT ('OP r) p a b -> p (r ** a) b
- ask :: forall k (p :: k +-> k) (r :: k). (Promonad p, Monoidal k, Ob r) => ReaderT ('OP r) p (Unit :: k) r
- answer :: forall {k} (p :: k +-> k) (r :: k) (a :: k) (b :: k). (Promonad p, Monoidal k, Comonoid r) => ReaderT ('OP r) p a b -> ReaderT ('OP r) p (r ** a) b
- local :: forall {k} (a :: k) (b :: k) (p :: k +-> k) (r :: k). (Monoidal k, Ob r) => (r ~> r) -> ReaderT ('OP r) p a b -> ReaderT ('OP r) p a b
Documentation
data Reader (r :: OPPOSITE k) (a :: k) (b :: k) where Source Github #
Constructors
| Reader :: forall {k} (a :: k) (b :: k) (r1 :: k). Ob a => ((r1 ** a) ~> b) -> Reader ('OP r1) a b |
Instances
| (Ob r, SelfAction k) => Strong k (Reader ('OP r) :: k -> k -> Type) Source Github # | |||||
| (Comonoid r, SelfAction k, SymMonoidal k) => MonoidalProfunctor (Reader ('OP r) :: k -> k -> Type) Source Github # | Note: This is only premonoidal, not monoidal, unless the comonoid is cocommutative. | ||||
| (Ob r, Monoidal k) => Profunctor (Reader ('OP r) :: k -> k -> Type) Source Github # | |||||
Defined in Proarrow.Promonad.Reader Methods dimap :: forall (c :: k) (a :: k) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> Reader ('OP r) a b -> Reader ('OP r) c d Source Github # lmap :: forall (c :: k) (a :: k) (b :: k). (c ~> a) -> Reader ('OP r) a b -> Reader ('OP r) c b Source Github # rmap :: forall (b :: k) (d :: k) (a :: k). (b ~> d) -> Reader ('OP r) a b -> Reader ('OP r) a d Source Github # (\\) :: forall (a :: k) (b :: k) r0. ((Ob a, Ob b) => r0) -> Reader ('OP r) a b -> r0 Source Github # | |||||
| (Ob r, Monoidal k) => Corepresentable (Reader ('OP r) :: k -> k -> Type) Source Github # | The coreader comonad given the Promonad instance.
Together with the | ||||
Defined in Proarrow.Promonad.Reader Methods coindex :: forall (a :: k) (b :: k). Reader ('OP r) a b -> (Reader ('OP r) %% a) ~> b Source Github # cotabulate :: forall (a :: k) (b :: k). Ob a => ((Reader ('OP r) %% a) ~> b) -> Reader ('OP r) a b Source Github # corepMap :: forall (a :: k) (b :: k). (a ~> b) -> (Reader ('OP r) %% a) ~> (Reader ('OP r) %% b) Source Github # trivialCorep :: forall (a :: k). Ob a => Reader ('OP r) a (Reader ('OP r) %% a) Source Github # | |||||
| (Ob r, SymMonoidal k, Closed k) => Representable (Reader ('OP r) :: k -> k -> Type) Source Github # | The reader monad given the Promonad instance. | ||||
Defined in Proarrow.Promonad.Reader Methods index :: forall (a :: k) (b :: k). Reader ('OP r) a b -> a ~> (Reader ('OP r) % b) Source Github # tabulate :: forall (b :: k) (a :: k). Ob b => (a ~> (Reader ('OP r) % b)) -> Reader ('OP r) a b Source Github # repMap :: forall (a :: k) (b :: k). (a ~> b) -> (Reader ('OP r) % a) ~> (Reader ('OP r) % b) Source Github # trivialRep :: forall (a :: k). Ob a => Reader ('OP r) (Reader ('OP r) % a) a Source Github # | |||||
| (Ob r, Monoidal k) => Proadjunction (Writer r :: k -> k -> Type) (Reader ('OP r) :: k -> k -> Type) Source Github # | |||||
| (SelfAction k, Ob a) => IsReader (Reader ('OP a) :: k -> k -> Type) Source Github # | |||||
Defined in Proarrow.Category.Equipment.Stateful Associated Types
| |||||
| (Comonoid r, SelfAction k) => Cotraversable (Reader ('OP r) :: k -> k -> Type) Source Github # | |||||
Defined in Proarrow.Promonad.Reader | |||||
| (Comonoid r, Monoidal k) => Promonad (Reader ('OP r) :: k -> k -> Type) Source Github # | |||||
| (Monoid r, Monoidal k) => Procomonad (Reader ('OP r) :: k -> k -> Type) Source Github # | |||||
| Monoidal k => Functor (Reader :: OPPOSITE k -> k -> k -> Type) Source Github # | |||||
| type (Reader ('OP r) :: k -> k -> Type) %% (a :: k) Source Github # | |||||
| type (Reader ('OP r) :: k -> k -> Type) % (a :: k) Source Github # | |||||
| type WithWriter (Reader ('OP a) :: k -> k -> Type) Source Github # | |||||
Defined in Proarrow.Category.Equipment.Stateful | |||||
cotraverseReader :: forall {k} (p :: k +-> k) (r :: k). (Strong k p, SelfAction k, Ob r) => (p :.: Reader ('OP r)) :~> (Reader ('OP r) :.: p) Source Github #
A version of cotraverse specialized to Reader, with fewer requirements on p.
dayCounit :: forall {k} (r :: k). (Ob r, Cartesian k) => Day (Writer r) (Reader ('OP r)) ~> ((~>) :: CAT k) Source Github #
readerComp :: forall {k} (r :: k) (s :: k). (SymMonoidal k, Ob r, Ob s) => (Reader ('OP r) :.: Reader ('OP s)) ~> Reader ('OP (r ** s)) Source Github #
readerDay :: forall {k} (r :: k) (s :: k). (SymMonoidal k, Ob r, Ob s) => Day (Reader ('OP r)) (Reader ('OP s)) ~> Reader ('OP (r ** s)) Source Github #
newtype ReaderT (r :: OPPOSITE k) (p :: k +-> k) (a :: k) (b :: k) where Source Github #
Constructors
| ReaderT :: forall {k} (r :: OPPOSITE k) (p :: k +-> k) (a :: k) (b :: k). (Reader r :.: p) a b -> ReaderT r p a b |
Instances
| (Strong k p, Ob r, SelfAction k) => Strong k (ReaderT ('OP r) p :: k -> k -> Type) Source Github # | |
| (MonoidalProfunctor p, Comonoid r, SelfAction k, SymMonoidal k) => MonoidalProfunctor (ReaderT ('OP r) p :: k -> k -> Type) Source Github # | |
| (Profunctor p, Monoidal k, Ob r) => Profunctor (ReaderT ('OP r) p :: k -> k -> Type) Source Github # | |
Defined in Proarrow.Promonad.Reader Methods dimap :: forall (c :: k) (a :: k) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> ReaderT ('OP r) p a b -> ReaderT ('OP r) p c d Source Github # lmap :: forall (c :: k) (a :: k) (b :: k). (c ~> a) -> ReaderT ('OP r) p a b -> ReaderT ('OP r) p c b Source Github # rmap :: forall (b :: k) (d :: k) (a :: k). (b ~> d) -> ReaderT ('OP r) p a b -> ReaderT ('OP r) p a d Source Github # (\\) :: forall (a :: k) (b :: k) r0. ((Ob a, Ob b) => r0) -> ReaderT ('OP r) p a b -> r0 Source Github # | |
| (Corepresentable p, Ob r, Monoidal k) => Corepresentable (ReaderT ('OP r) p :: k -> k -> Type) Source Github # | |
Defined in Proarrow.Promonad.Reader Methods coindex :: forall (a :: k) (b :: k). ReaderT ('OP r) p a b -> (ReaderT ('OP r) p %% a) ~> b Source Github # cotabulate :: forall (a :: k) (b :: k). Ob a => ((ReaderT ('OP r) p %% a) ~> b) -> ReaderT ('OP r) p a b Source Github # corepMap :: forall (a :: k) (b :: k). (a ~> b) -> (ReaderT ('OP r) p %% a) ~> (ReaderT ('OP r) p %% b) Source Github # trivialCorep :: forall (a :: k). Ob a => ReaderT ('OP r) p a (ReaderT ('OP r) p %% a) Source Github # | |
| (Representable p, Ob r, SymMonoidal k, Closed k) => Representable (ReaderT ('OP r) p :: k -> k -> Type) Source Github # | |
Defined in Proarrow.Promonad.Reader Methods index :: forall (a :: k) (b :: k). ReaderT ('OP r) p a b -> a ~> (ReaderT ('OP r) p % b) Source Github # tabulate :: forall (b :: k) (a :: k). Ob b => (a ~> (ReaderT ('OP r) p % b)) -> ReaderT ('OP r) p a b Source Github # repMap :: forall (a :: k) (b :: k). (a ~> b) -> (ReaderT ('OP r) p % a) ~> (ReaderT ('OP r) p % b) Source Github # trivialRep :: forall (a :: k). Ob a => ReaderT ('OP r) p (ReaderT ('OP r) p % a) a Source Github # | |
| (Proadjunction p q, Ob r, Monoidal k) => Proadjunction (WriterT r p :: k -> k -> Type) (ReaderT ('OP r) q :: k -> k -> Type) Source Github # | |
| (Cotraversable p, Comonoid r, SelfAction k) => Cotraversable (ReaderT ('OP r) p :: k -> k -> Type) Source Github # | |
Defined in Proarrow.Promonad.Reader | |
| (Comonoid r, SelfAction k, Strong k p, Promonad p) => Promonad (ReaderT ('OP r) p :: k -> k -> Type) Source Github # | |
| Monoidal k => Functor (ReaderT :: OPPOSITE k -> (k +-> k) -> k -> k -> Type) Source Github # | |
| (Monoidal k, Ob r) => Functor (ReaderT r :: (k +-> k) -> k -> k -> Type) Source Github # | |
| (Comonoid r, Monoidal k) => Promonad (Star (ReaderT ('OP r)) :: (k +-> k) -> (k +-> k) -> Type) Source Github # | ReaderT is a monad on profunctors, i.e. we have |
| type (ReaderT ('OP r) p :: k -> k -> Type) %% (a :: k) Source Github # | |
| type (ReaderT ('OP r) p :: k -> k -> Type) % (a :: k) Source Github # | |
runReaderT :: forall {k} p (r :: k) (a :: k) (b :: k). Profunctor p => ReaderT ('OP r) p a b -> p (r ** a) b Source Github #
ask :: forall k (p :: k +-> k) (r :: k). (Promonad p, Monoidal k, Ob r) => ReaderT ('OP r) p (Unit :: k) r Source Github #