let mk_this_parse ?parse_pos my_parse = (); fun ~pos ~len str ->
let parse_pos =
match parse_pos with
| None -> Parse_pos.create ~buf_pos:pos ()
| Some parse_pos -> parse_pos.Parse_pos.buf_pos <- pos; parse_pos
in
my_parse ?parse_pos:(Some parse_pos) ?len:(Some len) str