`sig
type ('a, 'i, 'o) t =
('i * 'a) Cf_seq.t -> ('o * ('i * 'a) Cf_seq.t) option
constraint 'a = 'x #Cf_parser.cursor
exception Error of int
val err :
?f:(('i * ('b #Cf_parser.cursor as 'a)) Cf_seq.t -> exn) ->
unit -> ('a, 'i, 'o) Cf_parser.X.t
val req :
?f:(('i * ('b #Cf_parser.cursor as 'a)) Cf_seq.t -> exn) ->
('a, 'i, 'o) Cf_parser.X.t -> ('a, 'i, 'o) Cf_parser.X.t
val sat : ('i -> bool) -> ('a #Cf_parser.cursor, 'i, 'i) Cf_parser.X.t
val tok : ('i -> 'o option) -> ('a #Cf_parser.cursor, 'i, 'o) Cf_parser.X.t
val lit : string -> 'o -> ('a #Cf_parser.cursor, char, 'o) Cf_parser.X.t
val weave :
c:('i #Cf_parser.cursor as 'c) -> 'i Cf_seq.t -> ('i * 'c) Cf_seq.t
val unfold :
('b #Cf_parser.cursor as 'a, 'i, 'o) Cf_parser.X.t ->
('i * 'a) Cf_seq.t -> ('o * 'a) Cf_seq.t
end`