| Portability | rank-2, GADTs | 
|---|---|
| Stability | provisional | 
| Maintainer | Edward Kmett <ekmett@gmail.com> | 
| Safe Haskell | None | 
Data.Machine.Type
Description
- newtype  MachineT m k o = MachineT {
- runMachineT :: m (Step k o (MachineT m k o))
 
 - data Step k o r
 - type Machine k o = forall m. Monad m => MachineT m k o
 - runT_ :: Monad m => MachineT m k b -> m ()
 - runT :: Monad m => MachineT m k b -> m [b]
 - run :: MachineT Identity k b -> [b]
 - runMachine :: MachineT Identity k o -> Step k o (MachineT Identity k o)
 - encased :: Monad m => Step k o (MachineT m k o) -> MachineT m k o
 - construct :: Monad m => PlanT k o m a -> MachineT m k o
 - repeatedly :: Monad m => PlanT k o m a -> MachineT m k o
 - before :: Monad m => MachineT m k o -> PlanT k o m a -> MachineT m k o
 - fit :: Monad m => (forall a. k a -> k' a) -> MachineT m k o -> MachineT m k' o
 - pass :: k o -> Machine k o
 - stopped :: Machine k b
 - class Appliance k where
 
Machines
A MachineT reads from a number of inputs and may yield results before stopping
 with monadic side-effects.
Constructors
| MachineT | |
Fields 
  | |
runT_ :: Monad m => MachineT m k b -> m ()Source
Stop feeding input into model, taking only the effects.
Building machines from plans
repeatedly :: Monad m => PlanT k o m a -> MachineT m k oSource
Generates a model that runs a machine until it stops, then start it up again.
repeatedlym =construct(foreverm)
before :: Monad m => MachineT m k o -> PlanT k o m a -> MachineT m k oSource
Evaluate a machine until it stops, and then yield answers according to the supplied model.