karakuri-0.1.1: Good stateful automata

Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Karakuri

Synopsis

Documentation

data Karakuri m a Source

Karakuri means automaton in Japanese.

Constructors

forall s . Karakuri (s -> m s) (s -> a) s 

step :: Monad m => Karakuri m a -> m (Karakuri m a) Source

Run a Karakuri.

transKarakuri :: (forall s. m s -> n s) -> Karakuri m a -> Karakuri n a Source

stateful :: Monad m => StateT s m () -> s -> Karakuri m s Source

Create a Karakuri from the stateful action.

stateful' :: Monad m => State s () -> s -> Karakuri m s Source

Create a Karakuri from the stateful action.

effective :: Monad m => a -> m a -> Karakuri m a Source

Create a Karakuri that performs the given action every time.