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)

#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

#runMealy Source

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

#stepMealy Source

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

#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

#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

#wrapEffect Source

wrapEffect :: forall a s f. Monad f => f 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

#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

#when Source

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