Mealy machines
Examples
We can enumerate inputs:
let countingMealy = unfoldMealy (\i x -> ((i, x), i + 1)) 0run (auto countingMealy <~ source "word")[(0,'w'),(1,'o'),(2,'r'),(3,'d')]
Instances22Arrow, ArrowApply, ArrowChoice, Choice, Closed, Costrong, …
Arrow MealyDefined in machines-0.7.4 · Data.Machine.MealyArrowApply MealyDefined in machines-0.7.4 · Data.Machine.MealyArrowChoice MealyDefined in machines-0.7.4 · Data.Machine.MealyChoice MealyDefined in machines-0.7.4 · Data.Machine.MealyClosed MealyDefined in machines-0.7.4 · Data.Machine.MealyCostrong MealyDefined in machines-0.7.4 · Data.Machine.MealyStrong MealyDefined in machines-0.7.4 · Data.Machine.MealyProfunctor MealyDefined in machines-0.7.4 · Data.Machine.MealyCorepresentable MealyDefined in machines-0.7.4 · Data.Machine.MealyAutomaton MealyDefined in machines-0.7.4 · Data.Machine.MealyCategory MealyDefined in machines-0.7.4 · Data.Machine.MealyCosieve Mealy NonEmptyDefined in machines-0.7.4 · Data.Machine.MealyFunctor (Mealy a)Defined in machines-0.7.4 · Data.Machine.MealyApplicative (Mealy a)Defined in machines-0.7.4 · Data.Machine.MealyDistributive (Mealy a)Defined in machines-0.7.4 · Data.Machine.MealyExtend (Mealy a)Defined in machines-0.7.4 · Data.Machine.MealyRepresentable (Mealy a)Defined in machines-0.7.4 · Data.Machine.MealyPointed (Mealy a)Defined in machines-0.7.4 · Data.Machine.MealySemigroup b => Semigroup (Mealy a b)Defined in machines-0.7.4 · Data.Machine.MealyMonoid b => Monoid (Mealy a b)Defined in machines-0.7.4 · Data.Machine.Mealytype Corep Mealy = NonEmptyDefined in machines-0.7.4 · Data.Machine.Mealytype Rep (Mealy a) = NonEmpty aDefined in machines-0.7.4 · Data.Machine.Mealy