Source codeContentsIndex
GuardedChannels
data GuardedChannel guard value
type GQ guardQueue value = guardQueue (GuardInfo value)
type VQ valueQueue = valueQueue ValueInfo
newGuardedChannel :: (HasGuardedChannel guardQueue valueQueue guard value) => GQ guardQueue value -> VQ valueQueue -> IO (GuardedChannel guard value)
sneak :: (Guard guard) => GuardedChannel guard value -> GuardedEvent guard (Maybe value)
replace :: (Guard guard) => GuardedChannel guard value -> value -> GuardedEvent guard (Maybe value)
class HasEmpty xQueue where
Methods
newEmpty :: IO (xQueue xData)
Instances
(Ord key) => HasEmpty (EqValueQueue key value)
(Ord key) => HasEmpty (EqGuardQueue key)
HasEmpty (ValueQueue v)
HasEmpty (GuardQueue v)
HasEmpty (NullValueQueue value)
HasEmpty NullGuardQueue
class HasRemove yQueue x y where
Methods
remove :: yQueue yData -> x -> IO (Maybe (y, yData, IO (yQueue yData)), yQueue yData)
Instances
(Ord key) => HasRemove (EqValueQueue key value) (EqMatch key) (key, value)
(Ord key) => HasRemove (EqGuardQueue key) (key, value) (EqMatch key)
HasRemove (ValueQueue v) (Match v) v
HasRemove (GuardQueue v) v (Match v)
HasRemove (NullValueQueue value) () value
HasRemove NullGuardQueue value ()
class HasAdd xQueue x where
Methods
add :: xQueue xData -> x -> xData -> IO (xQueue xData, IO ())
Instances
(Ord key) => HasAdd (EqValueQueue key value) (key, value)
(Ord key) => HasAdd (EqGuardQueue key) (EqMatch key)
HasAdd (ValueQueue v) v
HasAdd (GuardQueue v) (Match v)
HasAdd (NullValueQueue value) value
HasAdd NullGuardQueue ()
class (HasRemove yQueue x y, HasAdd xQueue x) => CanSendX xQueue yQueue x y
Instances
(HasRemove yQueue x y, HasAdd xQueue x) => CanSendX xQueue yQueue x y
class (Guard guard, HasEmpty guardQueue, HasEmpty valueQueue, CanSendX guardQueue valueQueue guard value, CanSendX valueQueue guardQueue value guard) => HasGuardedChannel guardQueue valueQueue guard value
Instances
(Guard guard, HasEmpty guardQueue, HasEmpty valueQueue, CanSendX guardQueue valueQueue guard value, CanSendX valueQueue guardQueue value guard) => HasGuardedChannel guardQueue valueQueue guard value
Produced by Haddock version 0.3