Hello, The sample code in the genlex module documentation is broken. Attached (and below) is a patch to fix it from the CVS version. Paul ---- Index: genlex.mli =================================================================== RCS file: /caml/ocaml/stdlib/genlex.mli,v retrieving revision 1.8 diff -u -r1.8 genlex.mli --- genlex.mli 2001/12/07 13:40:51 1.8 +++ genlex.mli 2004/04/09 13:59:13 @@ -29,12 +29,16 @@ to, for instance, [int], and would have rules such as: {[ - let parse_expr = parser - [< 'Int n >] -> n - | [< 'Kwd "("; n = parse_expr; 'Kwd ")" >] -> n - | [< n1 = parse_expr; n2 = parse_remainder n1 >] -> n2 - and parse_remainder n1 = parser + + let rec parse_expr = parser + [< 'Int n>] -> n + | [< 'Kwd "("; + n = parse_expr; + n2 = parse_remainder n; + 'Kwd ")" >] -> n2 + and parse_remainder n1 = parser [< 'Kwd "+"; n2 = parse_expr >] -> n1+n2 + | [< 'Kwd "-"; n2 = parse_expr >] -> n1-n2 | ... ]} *)