Dear list members, I am finishing to port binlib to camlp4 of 3.10 and have a few problems left : 1) a bug in my extension, I have: expr: LEVEL "simple" [ [ "[^"; "^]" -> <:expr< Bindlib.unit [] >> | "[^"; el = expr1_semi_list; "^]" -> <:expr< $mklistupexp _loc true el$ >> | "[|^"; "^|]" -> <:expr< Bindlib.unit [||] >> | "[|^"; el = expr1_semi_list; "^|]" -> mkarrayupexp _loc el | "{^"; lel = label_expr; "^}" -> mkrecordupexp _loc None lel | "{^"; e = expr LEVEL "."; "with"; le = label_expr; "^}" -> mkrecordupexp _loc (Some e) le | "(^"; el = LIST0 expr LEVEL ":=" SEP ","; "^)" -> mktuppleupexp _loc el ] ]; (among other thing, the complete extension is attached) and in a program using this extension, the following line: (^ (^Array.length sa^) , (^make_pat pat^) , t^) produces the following error message: File "programs.ml", line 1259, characters 1-48: Failure: "expr, expr: not allowed here" Preprocessor error I tried a lot of thing and I do not understand what is happening (a very similar extension was working with 3.09) 2) with 3.09 I used to produce a bytecode similar to camlp4o with my extension buildin. I could not find the proper line to compile this bytecode (I tried to copy the compile line of camlp4o and to add pa_bindlib.cmo somewhere, but I failed) 3) I like the fact that my new delimiter "(^", "^)", ... are now supported by the standard lexer of camlp4, But I think that spaces should not be mandatory between delimiters and therefore, keywords should only be allowed to contain one "(", "{" or "[" at the beginning and/or one ")","}","]" at the end. Still, I prefer the 3.10 version needing a few extra spaces that having to rewrite my own lexer.