License | BSD-style (see the file LICENSE) |
---|---|
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Data.Machine.MealyT
Description
http://en.wikipedia.org/wiki/Mealy_machine https://github.com/ivanperez-keera/dunai/blob/develop/src/Data/MonadicStreamFunction/Core.hs#L35 https://hackage.haskell.org/package/auto-0.4.3.0/docs/Control-Auto.html https://hackage.haskell.org/package/varying-0.6.0.0/docs/Control-Varying-Core.html
Synopsis
- newtype MealyT (m :: Type -> Type) a b = MealyT {}
- arrPure :: (a -> b) -> MealyT Identity a b
- arrM :: Functor m => (a -> m b) -> MealyT m a b
- upgrade :: forall (m :: Type -> Type) a b. Applicative m => Mealy a b -> MealyT m a b
- scanMealyT :: forall (m :: Type -> Type) a b. Applicative m => (a -> b -> a) -> a -> MealyT m b a
- scanMealyTM :: Functor m => (a -> b -> m a) -> a -> MealyT m b a
Documentation
newtype MealyT (m :: Type -> Type) a b Source #
Mealy
machine, with applicative effects
Instances
AutomatonM MealyT Source # | |
Monad m => Category (MealyT m :: Type -> Type -> Type) Source # | |
Monad m => Arrow (MealyT m) Source # | |
Defined in Data.Machine.MealyT | |
Functor m => Profunctor (MealyT m) Source # | |
Defined in Data.Machine.MealyT Methods dimap :: (a -> b) -> (c -> d) -> MealyT m b c -> MealyT m a d # lmap :: (a -> b) -> MealyT m b c -> MealyT m a c # rmap :: (b -> c) -> MealyT m a b -> MealyT m a c # (#.) :: forall a b c q. Coercible c b => q b c -> MealyT m a b -> MealyT m a c # (.#) :: forall a b c q. Coercible b a => MealyT m b c -> q a b -> MealyT m a c # | |
Applicative m => Applicative (MealyT m a) Source # | |
Defined in Data.Machine.MealyT | |
Functor m => Functor (MealyT m a) Source # | |
Pointed m => Pointed (MealyT m a) Source # | |
Defined in Data.Machine.MealyT | |
(Semigroup b, Monoid b, Applicative m) => Monoid (MealyT m a b) Source # | |
(Semigroup b, Applicative m) => Semigroup (MealyT m a b) Source # | |
scanMealyT :: forall (m :: Type -> Type) a b. Applicative m => (a -> b -> a) -> a -> MealyT m b a Source #
scanMealyTM :: Functor m => (a -> b -> m a) -> a -> MealyT m b a Source #