try +stm
A version of peekTChan which does not retry. Instead it returns Nothing if no value is available.
A version of readTChan which does not retry. Instead it returns Nothing if no value is available.
A version of readTMVar which does not retry. Instead it returns Nothing if no value is available.
Retry execution of the current memory transaction because it has seen values in TVars which mean that it should not continue (e.g. the TVars represent a shared buffer that is now empty). The implementation may block the thread until one of the TVars that it has read from has been udpated. (GHC only)