Module

Data.Machine.Mealy

Package
purescript-machines
Repository
purescript-contrib/purescript-machines

#MealyT Source

newtype MealyT f s a

Instances

#runMealyT Source

runMealyT :: forall a s f. MealyT f s a -> s -> f (Step f s a)

#hoistMealyT Source

hoistMealyT :: forall s g f. Functor g => (f ~> g) -> (MealyT f s) ~> (MealyT g s)

Transforms a Mealy machine running in the context of f into one running in g, given a natural transformation from f to g.

#Step Source

data Step f s a

Constructors

#Source Source

type Source f s = MealyT f Unit s

#Sink Source

type Sink f a = MealyT f a Unit

#source Source

source :: forall s f. Monad f => f s -> Source f s

#sink Source

sink :: forall a f. Monad f => (a -> f Unit) -> Sink f a

#stepMealy Source

stepMealy :: forall a s f. Monad f => s -> MealyT f s a -> f (Step f s a)

#runMealy Source

runMealy :: forall f. Monad f => MealyT f Unit Unit -> f Unit

#pureMealy Source

pureMealy :: forall a s f. Applicative f => (s -> Step f s a) -> MealyT f s a

#mealy Source

mealy :: forall a s f. Applicative f => (s -> f (Step f s a)) -> MealyT f s a

#halt Source

halt :: forall a s f. Applicative f => MealyT f s a

#take Source

take :: forall a s f. Monad f => Int -> MealyT f s a -> MealyT f s a

#drop Source

drop :: forall a s f. Monad f => Int -> MealyT f s a -> MealyT f s a

#loop Source

loop :: forall a s f. Monad f => MealyT f s a -> MealyT f s a

#toUnfoldable Source

toUnfoldable :: forall a s g f. Unfoldable g => Comonad f => s -> MealyT f s a -> g a

#zipWith Source

zipWith :: forall c b a s f. Monad f => (a -> b -> c) -> MealyT f s a -> MealyT f s b -> MealyT f s c

#scanl Source

scanl :: forall b a s f. Monad f => (b -> a -> b) -> b -> MealyT f s a -> MealyT f s b

#collect Source

collect :: forall a s f. Monad f => MealyT f s a -> MealyT f s (List a)

#singleton Source

singleton :: forall a s f. Monad f => a -> MealyT f s a

#fromMaybe Source

fromMaybe :: forall a s f. Monad f => Maybe a -> MealyT f s a

#fromArray Source

fromArray :: forall a s f. Monad f => Array a -> MealyT f s a

#msplit Source

msplit :: forall a s f. Monad f => MealyT f s a -> MealyT f s (Maybe (Tuple a (MealyT f s a)))

#interleave Source

interleave :: forall a s f. Monad f => MealyT f s a -> MealyT f s a -> MealyT f s a

#when Source

when :: forall b a s f. Monad f => MealyT f s a -> (a -> MealyT f s b) -> MealyT f s b

#ifte Source

ifte :: forall b a s f. Monad f => MealyT f s a -> (a -> MealyT f s b) -> MealyT f s b -> MealyT f s b

#wrapEffect Source

wrapEffect :: forall a s f. Monad f => f a -> MealyT f s a