AFSM-0.1.3.1: Arrowized functional state machines

Copyright(c) Hanzhong Xu, Meng Meng 2016,
LicenseMIT License
Maintainerhanzh.xu@gmail.com
Stabilityexperimental
Portabilityportable
Safe HaskellSafe
LanguageHaskell2010

Control.AFSM.SMFunctor

Description

 

Documentation

class SMFunctor f where Source #

Minimal complete definition

smexec

Methods

smexec :: SM s a b -> f a -> (SM s a b, f b) Source #

smfmap :: SM s a b -> f a -> f b Source #

Instances

SMFunctor [] Source # 

Methods

smexec :: SM s a b -> [a] -> (SM s a b, [b]) Source #

smfmap :: SM s a b -> [a] -> [b] Source #

SMFunctor Maybe Source # 

Methods

smexec :: SM s a b -> Maybe a -> (SM s a b, Maybe b) Source #

smfmap :: SM s a b -> Maybe a -> Maybe b Source #

SMFunctor ((->) r) Source # 

Methods

smexec :: SM s a b -> (r -> a) -> (SM s a b, r -> b) Source #

smfmap :: SM s a b -> (r -> a) -> r -> b Source #

SMFunctor (Either a) Source # 

Methods

smexec :: SM s a b -> Either a a -> (SM s a b, Either a b) Source #

smfmap :: SM s a b -> Either a a -> Either a b Source #

SMFunctor ((,) a) Source # 

Methods

smexec :: SM s a b -> (a, a) -> (SM s a b, (a, b)) Source #

smfmap :: SM s a b -> (a, a) -> (a, b) Source #

(SMFunctor f, SMFunctor g) => SMFunctor (Compose * * f g) Source # 

Methods

smexec :: SM s a b -> Compose * * f g a -> (SM s a b, Compose * * f g b) Source #

smfmap :: SM s a b -> Compose * * f g a -> Compose * * f g b Source #

smexecSM :: SMFunctor f => SM s a b -> SM s (f a) (f b) Source #

smexecSMA :: SMFunctor f => SM s a b -> SM (SM s a b) (f a) (f b) Source #

bindSM :: (Monad m, SMFunctor m) => m a -> SM s a (m b) -> (SM s a (m b), m b) Source #

(>>>=) :: (Monad m, SMFunctor m) => m a -> SM s a (m b) -> m b Source #