Portability  rank2, GADTs 

Stability  provisional 
Maintainer  Edward Kmett <ekmett@gmail.com> 
Safe Haskell  None 
 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 sideeffects.
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.