Haskell: What monad did I just reinvent? Haskell: What monad did I just reinvent? multithreading multithreading