To make up for my total misunderstanding of what you were asking
before, I hereby offer you the Plumbing module, available here:
 
https://bitbucket.org/mtnviewmark/haskell-playground/src/2d022b576c4e/Plumbing.hs

With it, I think you can construct the kinds of pipelines you describe
with the composition aspects you desire:

> :load Plumbing.hs
[1 of 1] Compiling Plumbing         ( Plumbing.hs, interpreted )
Ok, modules loaded: Plumbing.
> let filterUntil cond start end = (passUntil (>=start) =|= pfilter cond) =+= 
> passWhile (<end)
> let filterUntilPlus1 cond start end = filterUntil cond start end =+= pass 1
> filterUntil even 10 15 `pump` [1..]
[2,4,6,8,10,11,12,13,14]
> filterUntilPlus1 even 10 15 `pump` [1..]
[2,4,6,8,10,11,12,13,14,15]

- Mark

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to