pandora-0.1.7: A box of patterns and paradigms

Safe HaskellSafe
LanguageHaskell2010

Pandora.Paradigm.Inventory.Stateful

Documentation

newtype Stateful s a Source #

Constructors

Stateful (((->) s :.: (:*:) s) >< a) 
Instances
Covariant (Stateful s) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Stateful

Methods

(<$>) :: (a -> b) -> Stateful s a -> Stateful s b Source #

comap :: (a -> b) -> Stateful s a -> Stateful s b Source #

(<$) :: a -> Stateful s b -> Stateful s a Source #

($>) :: Stateful s a -> b -> Stateful s b Source #

void :: Stateful s a -> Stateful s () Source #

loeb :: Stateful s (Stateful s a -> a) -> Stateful s a Source #

(<&>) :: Stateful s a -> (a -> b) -> Stateful s b Source #

(<$$>) :: Covariant u => (a -> b) -> ((Stateful s :.: u) >< a) -> (Stateful s :.: u) >< b Source #

(<$$$>) :: (Covariant u, Covariant v) => (a -> b) -> ((Stateful s :.: (u :.: v)) >< a) -> (Stateful s :.: (u :.: v)) >< b Source #

(<$$$$>) :: (Covariant u, Covariant v, Covariant w) => (a -> b) -> ((Stateful s :.: (u :.: (v :.: w))) >< a) -> (Stateful s :.: (u :.: (v :.: w))) >< b Source #

(<&&>) :: Covariant u => ((Stateful s :.: u) >< a) -> (a -> b) -> (Stateful s :.: u) >< b Source #

(<&&&>) :: (Covariant u, Covariant v) => ((Stateful s :.: (u :.: v)) >< a) -> (a -> b) -> (Stateful s :.: (u :.: v)) >< b Source #

(<&&&&>) :: (Covariant u, Covariant v, Covariant w) => ((Stateful s :.: (u :.: (v :.: w))) >< a) -> (a -> b) -> (Stateful s :.: (u :.: (v :.: w))) >< b Source #

Bindable (Stateful s) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Stateful

Methods

(>>=) :: Stateful s a -> (a -> Stateful s b) -> Stateful s b Source #

(=<<) :: (a -> Stateful s b) -> Stateful s a -> Stateful s b Source #

bind :: (a -> Stateful s b) -> Stateful s a -> Stateful s b Source #

join :: (Stateful s :.: Stateful s) a -> Stateful s a Source #

(>=>) :: (a -> Stateful s b) -> (b -> Stateful s c) -> a -> Stateful s c Source #

(<=<) :: (b -> Stateful s c) -> (a -> Stateful s b) -> a -> Stateful s c Source #

Applicative (Stateful s) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Stateful

Methods

(<*>) :: Stateful s (a -> b) -> Stateful s a -> Stateful s b Source #

apply :: Stateful s (a -> b) -> Stateful s a -> Stateful s b Source #

(*>) :: Stateful s a -> Stateful s b -> Stateful s b Source #

(<*) :: Stateful s a -> Stateful s b -> Stateful s a Source #

forever :: Stateful s a -> Stateful s b Source #

(<**>) :: Applicative u => (Stateful s :.: u) (a -> b) -> (Stateful s :.: u) a -> (Stateful s :.: u) b Source #

(<***>) :: (Applicative u, Applicative v) => (Stateful s :.: (u :.: v)) (a -> b) -> (Stateful s :.: (u :.: v)) a -> (Stateful s :.: (u :.: v)) b Source #

(<****>) :: (Applicative u, Applicative v, Applicative w) => (Stateful s :.: (u :.: (v :.: w))) (a -> b) -> (Stateful s :.: (u :.: (v :.: w))) a -> (Stateful s :.: (u :.: (v :.: w))) b Source #

Pointable (Stateful s) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Stateful

Methods

point :: a -> Stateful s a Source #

Monad (Stateful s) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Stateful

modify :: (s -> s) -> Stateful s () Source #

put :: s -> Stateful s () Source #

fold :: Traversable t => s -> (a -> s -> s) -> t a -> s Source #

find :: (Pointable u, Avoidable u, Alternative u, Traversable t) => Predicate a -> t a -> u a Source #