Tubes
type Tube a b
yield
await
(><)
runTube
halt
data Source m a
reduce
data Sink m a
data Channel m a b
tee
type Pump b a
send
recv
pumpT
lfold
stream
streamM
cat
for
each
every
map
drop
take
takeWhile
filter
unyield
pass
mapM
sequence
stop
prompt
display
liftT
runFreeT