pandora-0.2.3: A box of patterns and paradigms
Pandora.Paradigm.Inventory.Store
Contents
newtype Store p a Source #
Constructors
Defined in Pandora.Paradigm.Inventory.Store
Associated Types
type Primary (Store p) a :: Type Source #
Methods
unwrap :: Store p a -> Primary (Store p) a Source #
(<$>) :: (a -> b) -> Store p a -> Store p b Source #
comap :: (a -> b) -> Store p a -> Store p b Source #
(<$) :: a -> Store p b -> Store p a Source #
($>) :: Store p a -> b -> Store p b Source #
void :: Store p a -> Store p () Source #
loeb :: Store p (a <-| Store p) -> Store p a Source #
(<&>) :: Store p a -> (a -> b) -> Store p b Source #
(<$$>) :: Covariant u => (a -> b) -> ((Store p :. u) := a) -> (Store p :. u) := b Source #
(<$$$>) :: (Covariant u, Covariant v) => (a -> b) -> ((Store p :. (u :. v)) := a) -> (Store p :. (u :. v)) := b Source #
(<$$$$>) :: (Covariant u, Covariant v, Covariant w) => (a -> b) -> ((Store p :. (u :. (v :. w))) := a) -> (Store p :. (u :. (v :. w))) := b Source #
(<&&>) :: Covariant u => ((Store p :. u) := a) -> (a -> b) -> (Store p :. u) := b Source #
(<&&&>) :: (Covariant u, Covariant v) => ((Store p :. (u :. v)) := a) -> (a -> b) -> (Store p :. (u :. v)) := b Source #
(<&&&&>) :: (Covariant u, Covariant v, Covariant w) => ((Store p :. (u :. (v :. w))) := a) -> (a -> b) -> (Store p :. (u :. (v :. w))) := b Source #
(=>>) :: Store p a -> (Store p a -> b) -> Store p b Source #
(<<=) :: (Store p a -> b) -> Store p a -> Store p b Source #
extend :: (Store p a -> b) -> Store p a -> Store p b Source #
duplicate :: Store p a -> (Store p :. Store p) := a Source #
(=<=) :: (Store p b -> c) -> (Store p a -> b) -> Store p a -> c Source #
(=>=) :: (Store p a -> b) -> (Store p b -> c) -> Store p a -> c Source #
extract :: a <-| Store p Source #
flick :: Covariant u => (Store p :< u) ~> u Source #
bring :: Extractable u => (Store p :< u) ~> Store p Source #
Defined in Pandora.Paradigm.Inventory.Optics
(-|) :: a -> (Store s a -> b) -> State s b Source #
(|-) :: Store s a -> (a -> State s b) -> b Source #
phi :: (Store s a -> b) -> a -> State s b Source #
psi :: (a -> State s b) -> Store s a -> b Source #
eta :: a -> (State s :. Store s) := a Source #
epsilon :: ((Store s :. State s) := a) -> a Source #
position :: Store p a -> p Source #
access :: p -> a <-| Store p Source #
retrofit :: (p -> p) -> Store p ~> Store p Source #
(<$>) :: (a -> b) -> TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) a -> TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) b Source #
comap :: (a -> b) -> TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) a -> TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) b Source #
(<$) :: a -> TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) b -> TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) a Source #
($>) :: TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) a -> b -> TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) b Source #
void :: TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) a -> TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) () Source #
loeb :: TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) (a <-| TUV Covariant Covariant Covariant ((:*:) p) u ((->) p)) -> TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) a Source #
(<&>) :: TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) a -> (a -> b) -> TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) b Source #
(<$$>) :: Covariant u0 => (a -> b) -> ((TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) :. u0) := a) -> (TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) :. u0) := b Source #
(<$$$>) :: (Covariant u0, Covariant v) => (a -> b) -> ((TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) :. (u0 :. v)) := a) -> (TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) :. (u0 :. v)) := b Source #
(<$$$$>) :: (Covariant u0, Covariant v, Covariant w) => (a -> b) -> ((TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) :. (u0 :. (v :. w))) := a) -> (TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) :. (u0 :. (v :. w))) := b Source #
(<&&>) :: Covariant u0 => ((TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) :. u0) := a) -> (a -> b) -> (TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) :. u0) := b Source #
(<&&&>) :: (Covariant u0, Covariant v) => ((TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) :. (u0 :. v)) := a) -> (a -> b) -> (TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) :. (u0 :. v)) := b Source #
(<&&&&>) :: (Covariant u0, Covariant v, Covariant w) => ((TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) :. (u0 :. (v :. w))) := a) -> (a -> b) -> (TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) :. (u0 :. (v :. w))) := b Source #
(=>>) :: TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) a -> (TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) a -> b) -> TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) b Source #
(<<=) :: (TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) a -> b) -> TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) a -> TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) b Source #
extend :: (TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) a -> b) -> TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) a -> TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) b Source #
duplicate :: TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) a -> (TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) :. TUV Covariant Covariant Covariant ((:*:) p) u ((->) p)) := a Source #
(=<=) :: (TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) b -> c) -> (TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) a -> b) -> TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) a -> c Source #
(=>=) :: (TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) a -> b) -> (TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) b -> c) -> TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) a -> c Source #
extract :: a <-| TUV Covariant Covariant Covariant ((:*:) p) u ((->) p) Source #