let  parse_str ?(parse_pos = Parse_pos.create ()) ?len str =     let pos = parse_pos.Parse_pos.buf_pos in     let len =       match len with       | Some len -> len       | None ->  String.length str - pos     in     let max_pos = check_str_bounds "parse" ~pos ~len str in     let state =       {         parse_pos;         pstack =  [];         pbuf = Buffer.create 128;       }     in      parse_str state str ~max_pos ~pos