make newBroadcastTChanIO match newBroadcastTChan
While looking through the pull requests for stm-chans I came across a discrepancy in the new stm. Namely, we have the following definitions:
- stm == 2.4
newBroadcastTChan :: STM (TChan a)
newBroadcastTChan = do
dummy_hole <- newTVar TNil
write_hole <- newTVar TNil
read <- newTVar dummy_hole
write <- newTVar write_hole
return (TChan read write)
newBroadcastTChanIO :: IO (TChan a)
newBroadcastTChanIO = do
dummy_hole <- newTVarIO TNil
write_hole <- newTVarIO TNil
read <- newTVarIO dummy_hole
write <- newTVarIO write_hole
return (TChan read write)
- stm == 2.4.2
newBroadcastTChan :: STM (TChan a)
newBroadcastTChan = do
write_hole <- newTVar TNil
read <- newTVar (error ...)
write <- newTVar write_hole
return (TChan read write)
newBroadcastTChanIO :: IO (TChan a)
newBroadcastTChanIO = do
dummy_hole <- newTVarIO TNil
write_hole <- newTVarIO TNil
read <- newTVarIO dummy_hole
write <- newTVarIO write_hole
return (TChan read write)
Thus, whoever changed the definition of newBroadcastTChan in 2.4.2 forgot to change newBroadcastTChanIO to keep it in sync.
PROPOSAL: I propose changing newBroadcastTChanIO to match newBroadcastTChan.
ACCEPTED: +1: wren ng thornton, Edward Kmett, John Wiegley; -1: noone.
http://www.haskell.org/pipermail/libraries/2013-May/019808.html
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.6.3 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |