Hutton, Graham, Meijer, Erik, "Monadic parsing in Haskell", Journal of Functional Programming, 1998