Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Control.Moffy.Handle
Synopsis
- type ExpandableHandle es es' = (ExpandableOccurred es es', Collapsable es' es)
- type ExpandableOccurred es es' = Expandable Occurred es es'
- type MergeableOccurred es es' mrg = Mergeable Occurred es es' mrg
- type Handle m es = EvReqs es -> m (EvOccs es)
- type Handle' m es = EvReqs es -> m (Maybe (EvOccs es))
- retry :: Monad m => Handle' m es -> Handle m es
- sleep :: Int -> Handle' IO es -> Handle' IO es
- sleepIfNothing :: Int -> Handle' IO es -> Handle' IO es
- expand :: (Applicative m, ExpandableHandle es es') => Handle' m es -> Handle' m es'
- before :: (Monad m, ExpandableHandle es (es :+: es'), ExpandableHandle es' (es :+: es')) => Handle' m es -> Handle' m es' -> Handle' m (es :+: es')
- merge :: (Applicative m, ExpandableHandle es (es :+: es'), ExpandableHandle es' (es :+: es'), MergeableOccurred es es' (es :+: es')) => Handle' m es -> Handle' m es' -> Handle' m (es :+: es')
- type HandleSt st m es = EvReqs es -> St st m (EvOccs es)
- type HandleSt' st m es = EvReqs es -> St st m (Maybe (EvOccs es))
- type St st m a = st -> m (a, st)
- liftHandle :: Functor m => Handle m es -> HandleSt st m es
- liftHandle' :: Functor m => Handle' m es -> HandleSt' st m es
- liftSt :: Functor m => m r -> St st m r
- retrySt :: Monad m => HandleSt' st m es -> HandleSt st m es
- expandSt :: (Applicative m, ExpandableHandle es es') => HandleSt' st m es -> HandleSt' st m es'
- beforeSt :: (Monad m, ExpandableHandle es (es :+: es'), ExpandableHandle es' (es :+: es')) => HandleSt' st m es -> HandleSt' st m es' -> HandleSt' st m (es :+: es')
- mergeSt :: (Monad m, ExpandableHandle es (es :+: es'), ExpandableHandle es' (es :+: es'), MergeableOccurred es es' (es :+: es')) => HandleSt' st m es -> HandleSt' st m es' -> HandleSt' st m (es :+: es')
- type HandleIo' i o m es = EvReqs es -> i -> m (Maybe (EvOccs es), o)
- pushInput :: (a -> HandleSt' st m es) -> HandleIo' (a, st) st m es
- popInput :: HandleIo' (a, st) st m es -> a -> HandleSt' st m es
- expandIo :: (Applicative m, ExpandableHandle es es') => HandleIo' i o m es -> (i -> m o) -> HandleIo' i o m es'
- beforeIo :: (Monad m, ExpandableHandle es (es :+: es'), ExpandableHandle es' (es :+: es')) => HandleIo' i x m es -> (i -> m x) -> HandleIo' x o m es' -> (x -> m o) -> HandleIo' i o m (es :+: es')
- mergeIo :: (Monad m, ExpandableHandle es (es :+: es'), ExpandableHandle es' (es :+: es'), MergeableOccurred es es' (es :+: es')) => HandleIo' i x m es -> (i -> m x) -> HandleIo' x o m es' -> (x -> m o) -> HandleIo' i o m (es :+: es')
Constraint
type ExpandableHandle es es' = (ExpandableOccurred es es', Collapsable es' es) Source #
type ExpandableOccurred es es' = Expandable Occurred es es' Source #
type MergeableOccurred es es' mrg = Mergeable Occurred es es' mrg Source #
Plain Handle
Type
Composer
expand :: (Applicative m, ExpandableHandle es es') => Handle' m es -> Handle' m es' Source #
before :: (Monad m, ExpandableHandle es (es :+: es'), ExpandableHandle es' (es :+: es')) => Handle' m es -> Handle' m es' -> Handle' m (es :+: es') infixr 5 Source #
merge :: (Applicative m, ExpandableHandle es (es :+: es'), ExpandableHandle es' (es :+: es'), MergeableOccurred es es' (es :+: es')) => Handle' m es -> Handle' m es' -> Handle' m (es :+: es') infixr 6 Source #
Handle with State
Type
type HandleSt' st m es = EvReqs es -> St st m (Maybe (EvOccs es)) Source #
type HandleSt' st m es = HandleIo' st st m es
Composer
expandSt :: (Applicative m, ExpandableHandle es es') => HandleSt' st m es -> HandleSt' st m es' Source #
beforeSt :: (Monad m, ExpandableHandle es (es :+: es'), ExpandableHandle es' (es :+: es')) => HandleSt' st m es -> HandleSt' st m es' -> HandleSt' st m (es :+: es') infixr 5 Source #
mergeSt :: (Monad m, ExpandableHandle es (es :+: es'), ExpandableHandle es' (es :+: es'), MergeableOccurred es es' (es :+: es')) => HandleSt' st m es -> HandleSt' st m es' -> HandleSt' st m (es :+: es') infixr 6 Source #
Handle with Input and Output
Type
Composer
expandIo :: (Applicative m, ExpandableHandle es es') => HandleIo' i o m es -> (i -> m o) -> HandleIo' i o m es' Source #
beforeIo :: (Monad m, ExpandableHandle es (es :+: es'), ExpandableHandle es' (es :+: es')) => HandleIo' i x m es -> (i -> m x) -> HandleIo' x o m es' -> (x -> m o) -> HandleIo' i o m (es :+: es') Source #
mergeIo :: (Monad m, ExpandableHandle es (es :+: es'), ExpandableHandle es' (es :+: es'), MergeableOccurred es es' (es :+: es')) => HandleIo' i x m es -> (i -> m x) -> HandleIo' x o m es' -> (x -> m o) -> HandleIo' i o m (es :+: es') Source #