<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">broadcast-chan does the exact same thing as 'newBroadcastTChan' from Control.Concurrent.STM.TChan, that is your original Chan contains a "write" end only, and not a read end, the end result of that is: If you create a new write channel any message you write into it will, if there are no listeners, be immediately dropped and GCed. If you create "read" ends, then each read end will receive every message written into the write end, as long as the read end is active. So if you create 5 workers with a new read end each, then every message written after those have been created will be seen by all workers.<br></blockquote><div><br></div><div>If broadcast-chan does the exact same thing as broadcastTChan, why the need for a new library? This is what I'm trying to understand at the discussion on Reddit [1]. Would you prefer the mailing list or Reddit for the discussion?</div><div><br></div><div>[1] <a href="https://www.reddit.com/r/haskell/comments/5pnd9i/bugfree_leakfree_battletested_library_for/dct14rx/">https://www.reddit.com/r/haskell/comments/5pnd9i/bugfree_leakfree_battletested_library_for/dct14rx/</a></div></div>
</div></div>