{-# 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 = Group.groupingOn_
taggedBy :: Monad m => (a -> a -> Bool) -> ProcessT m a (Either () a)
taggedBy = Group.taggedOn_
partitioning :: Monad m => ProcessT m a b -> ProcessT m (Either () a) b
partitioning = Group.partitioning_
awaitUntil :: Monad m => (a -> Bool) -> (a -> ProcessT m a b) -> ProcessT m a b
awaitUntil = Group.awaitUntil