Here is a stream-based prepositional phrase parser. The stream module is based on section 5.12 of Paulson's excellent book, ML for the Working Programmer. The
adjoin2 combinator is right out of SICP's natural language example. These times are from native code compiled using ocamlopt 3.09.3 and running on a MacBook Pro at 667 MHz.
Henk Harkema. 2004. "A Recognizer for Minimalist Languages" in New Developments in Parsing Technology, Harry Bunt, John Carroll and Giorgio Satta, editors. Springer.
Van Dyke, J.A. & Lewis, R.L. (2003). Distinguishing effects of structure and decay on attachment and repair: A retrieval interference theory of recovery from misanalyzed ambiguities. Journal of Memory and Language, 49(3), 285-316.