úÎ P …"Implementation of a Treiber stack.BSD36Julian Sutherland (julian.sutherland10@imperial.ac.uk)None;xA Lock-free concurrent Treiber stack usable in any monad, m, that is paired with a reference type, r, by an instance of <. Can use Specializations TreiberStackIO and TreiberStackSTM"TreiberStack inside the STM Monad.!TreiberStack inside the IO Monad.$Creates a new empty instance of the e. Internally implemented with a reference of type r, which is why they must be atomically modifiable.(Pushes an element on to a Treiber stack.,Pops an element of a Treiber stack. Returns  if the stack is empty.           Treiber-0.0.2!Data.NonBlocking.LockFree.Treiber TreiberStacknewTreiberStackpushTreiberStackpopTreiberStack ref-mtl-0.3Control.Monad.RefMonadAtomicRefTreiberStackSTMTreiberStackIObase Data.MaybeNothing TreiberElemEndcasptrEq$fEqTreiberElem