
Hi! Now that isEmptyChan is deprecated (#4154) it would be useful to add tryReadChan. It seems it is possible to define it so that it does not block like isEmptyChan. This is because semantics is a bit different: tryReadChan is allowed to return Nothing also when Chan is non-empty, but it would block. Contrary, isEmptyChan is expected that it would return False only if Chan is really empty. I have defined also two new MVar functions which helped me implementing tryReadChan: tryReadMVar and tryModifyMVar. Probably it would be useful to make them public. Please comment. I propose three weeks for discussion. I have also opened a ticket: http://hackage.haskell.org/trac/ghc/ticket/4535 and attached a ptach there with working implementation. It would be useful to run it against some tests. (I am sorry that patch is not in darcs format.) Mitar