Time Travel in Haskell (a function's output is passed as a parameter to the same function) · HackerTrans