Recently some discussion on the Haskell IRC channel suggested that using continuation passing style can increase the performance of monadic code. I decided to try this with my 2007 ICFP contest code. The results were stunning. I had previously updated my monad to make it more precise, and to avoid using the unoptimized Ubuntu MTL package. The previous monad data type constructor was (approximately
{{#tags}}- {{label}}
{{/tags}}