Portability | rank-2, GADTs |
---|---|
Stability | provisional |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Safe Haskell | Safe-Infered |
- newtype MachineT m k i o = MachineT {
- runMachineT :: m (Step k i o (MachineT m k i o))
- data Step k i o r
- type Machine k i o = forall m. Monad m => MachineT m k i o
- runT_ :: Monad m => MachineT m k a b -> m ()
- runT :: Monad m => MachineT m k a b -> m [b]
- run :: MachineT Identity k a b -> [b]
- runMachine :: MachineT Identity k i o -> Step k i o (MachineT Identity k i o)
- encased :: Monad m => Step k i o (MachineT m k i o) -> MachineT m k i o
- construct :: Monad m => PlanT k i o m a -> MachineT m k i o
- repeatedly :: Monad m => PlanT k i o m a -> MachineT m k i o
- before :: Monad m => MachineT m k i o -> PlanT k i o m a -> MachineT m k i o
- fit :: Monad m => (forall a. k i a -> k' i' a) -> MachineT m k i o -> MachineT m k' i' o
- pass :: k i o -> Machine k i o
- stopped :: Machine k a b
Machines
newtype MachineT m k i o Source
A MachineT
reads from a number of inputs and may yield results before stopping
with monadic side-effects.
MachineT | |
|
(~ (* -> * -> *) k Is, Monad m) => Category (MachineT m k) | Eventually this will probably revert to |
(Monad m, Profunctor k) => Profunctor (MachineT m k) | |
Monad m => Functor (MachineT m k i) | |
~ (* -> *) m Identity => Foldable (MachineT m k i) | This permits toList to be used on a Machine. |
runT_ :: Monad m => MachineT m k a b -> m ()Source
Stop feeding input into model, taking only the effects.
runT :: Monad m => MachineT m k a b -> m [b]Source
Stop feeding input into model and extract an answer
encased :: Monad m => Step k i o (MachineT m k i o) -> MachineT m k i oSource
Pack a Step of a Machine into a Machine.
Building machines from plans
repeatedly :: Monad m => PlanT k i o m a -> MachineT m k i oSource
Generates a model that runs a machine until it stops, then start it up again.
repeatedly
m =construct
(forever
m)
before :: Monad m => MachineT m k i o -> PlanT k i o m a -> MachineT m k i oSource
Evaluate a machine until it stops, and then yield answers according to the supplied model.