{-# LANGUAGE GADTs #-}
module Data.Machine.Group
( groupingOn
, taggedBy
, partitioning
, starve
, awaitUntil
)where
import Data.Machine
import qualified Data.Machine.Group.General as Group
groupingOn :: Monad m => (a -> a -> Bool) -> ProcessT m a b -> ProcessT m a b
groupingOn :: (a -> a -> Bool) -> ProcessT m a b -> ProcessT m a b
groupingOn = (a -> a -> Bool) -> ProcessT m a b -> ProcessT m a b
forall (m :: * -> *) a b.
Monad m =>
(a -> a -> Bool) -> ProcessT m a b -> ProcessT m a b
Group.groupingOn_
taggedBy :: Monad m => (a -> a -> Bool) -> ProcessT m a (Either () a)
taggedBy :: (a -> a -> Bool) -> ProcessT m a (Either () a)
taggedBy = (a -> a -> Bool) -> ProcessT m a (Either () a)
forall (m :: * -> *) a.
Monad m =>
(a -> a -> Bool) -> ProcessT m a (Either () a)
Group.taggedOn_
partitioning :: Monad m => ProcessT m a b -> ProcessT m (Either () a) b
partitioning :: ProcessT m a b -> ProcessT m (Either () a) b
partitioning = ProcessT m a b -> ProcessT m (Either () a) b
forall (m :: * -> *) a b.
Monad m =>
ProcessT m a b -> ProcessT m (Either () a) b
Group.partitioning_
awaitUntil :: Monad m => (a -> Bool) -> (a -> ProcessT m a b) -> ProcessT m a b
awaitUntil :: (a -> Bool) -> (a -> ProcessT m a b) -> ProcessT m a b
awaitUntil = (a -> Bool) -> (a -> ProcessT m a b) -> ProcessT m a b
forall (m :: * -> *) a b.
Monad m =>
(a -> Bool) -> (a -> ProcessT m a b) -> ProcessT m a b
Group.awaitUntil