Bounded (limited capacity) channels for Haskell