úΊœ5      !"#$%&'()*+,-./01234SafegLike debounce, but losslessSafe-FÏ      Safe-Fh  Safe-uLike debounce, but losslessSafe …ÿ+Note: In this model, even though we are using STM, a write to the outgoing channel does not imply a transactional write to the output channel; they are separated between a run IO layer, which means we cannot atomically debounce or interleave the system (because that depends on real-world time).Safe-F í !"#$%&'()*+,-./0 !"#$%&'()*+,-./0 !Safe-v2ÿ+Note: In this model, even though we are using STM, a write to the outgoing channel does not imply a transactional write to the output channel; they are separated between a run IO layer, which means we cannot atomically debounce or interleave the system (because that depends on real-world time).123412345            !"#$%&'()*   +!chan-0.0.3-5scBGBBNS68Ax4i7k64IzrControl.Concurrent.Chan.ExtraControl.Concurrent.Chan.ScopeControl.Concurrent.Chan.Typed#Control.Concurrent.Chan.Typed.Extra"Control.Concurrent.STM.TChan.Extra"Control.Concurrent.STM.TChan.Typed(Control.Concurrent.STM.TChan.Typed.Extra DiffNanosecdebounceStaticthrottleStaticintersperseStaticWritableReadableScopeReadWrite ReadWrite$fReadableReadWrite$fReadableRead$fWritableReadWrite$fWritableWriteChanRWreadOnly writeOnly allowReading allowWriting newChanRW writeChanRW readChanRW dupChanRWTChanRW newTChanRW writeTChanRW unGetTChanRWisEmptyTChanRW readTChanRWtryReadTChanRW peekTChanRWtryPeekTChanRWnewBroadcastTChanRW dupTChanRW cloneTChanRW