Hi, I've released a small monadic parser combinator library for OCaml, Planck version 1.0.0, available at: https://bitbucket.org/camlspotter/planck/get/v1.0.0.tar.gz It is firstly just for my fun to learn what is Parsec/parser combinators, but it is now elaborated to something useful: - input positions by lines and columns - char specialized stream for better performance - operator precedence/associativity resolver - memoization module for efficient backtracks For example I could implement OCaml syntax lexer and parser using Planck. REQUIREMENTS: unfortunately Planck depends on many things: - ocaml 3.12.0 or higher - findlib - omake - type-conv 2.3.0 and sexplib 5.2.1 (available from http://ocaml.janestreet.com/?q=node/13) - spotlib (my small utility functions, available at http://bitbucket.org/camlspotter/spotlib/ ) The followings are required to compiler ocaml syntax parser example: - pa_monad_custom ( http://bitbucket.org/camlspotter/pa_monad_custom/ - ocaml 3.12.0 source tree and lablgtk-2.14.2 source code tree for testing The combinators in Planck are implemented simply as functional monadic combinators over streams (lazy lists). Unfortunately, it is very slow with the current OCaml compiler (3.12.0) due to its huge closure constructions: it is about x100 slower than the traditional ocamllex+ocamlyacc. I hope more aggressive in-lining optimizations in the compiler might speed up the performance of Planck greatly. You can read some of my rough considerations in this topic at: http://camlspotter.blogspot.com/2011/05/planck-small-parser-combinator-library.html Enjoy, Jun