Threading Combinators.
- type Split t i r = i -> t -> (r, t)
- type SplitM t i r = Split t i (Maybe r)
- type Thread t i r = (t, Split t i r)
- type Collect r c = (r -> c -> c, c)
- threadList' :: Collect r c -> Split t i r -> [i] -> t -> (c, t)
- threadList :: Collect r c -> Split t i r -> [i] -> t -> (c, t)
- threadMaybe' :: (r -> a) -> Split t i r -> Split t j (Maybe i) -> Split t j (Maybe a)
- threadMaybe :: (i -> r -> a) -> Split t i r -> SplitM t j i -> SplitM t j a
- splitPar :: Split t i r -> Split u j s -> Split (t, u) (i, j) (r, s)
- splitParM :: SplitM t i r -> Split u j s -> SplitM (t, u) (i, j) (r, s)
Types
type Split t i r = i -> t -> (r, t)
type Collect r c = (r -> c -> c, c)
Operations
threadList' :: Collect r c -> Split t i r -> [i] -> t -> (c, t)
threadList :: Collect r c -> Split t i r -> [i] -> t -> (c, t)
threadMaybe :: (i -> r -> a) -> Split t i r -> SplitM t j i -> SplitM t j a