sig
  type ('b, 'a) r constraint 'b = char #Cf_parser.cursor
  type ('b, 'a) t = ('b, char, 'a) Cf_parser.X.t
    constraint 'b = char #Cf_parser.cursor
  val create :
    (char #Cf_parser.cursor as 'b, 'a) Cf_lex.X.r -> ('b, 'a) Cf_lex.X.t
  module Op :
    sig
      val ( $| ) : x -> x -> x
      val ( $& ) : x -> x -> x
      val ( !* ) : x -> x
      val ( !+ ) : x -> x
      val ( !? ) : x -> x
      val ( !: ) : char -> x
      val ( !^ ) : (char -> bool) -> x
      val ( !~ ) : char Cf_seq.t -> x
      val ( !$ ) : string -> x
      val ( $= ) : Cf_lex.x -> '-> (char #Cf_parser.cursor, 'a) Cf_lex.X.r
      val ( $> ) :
        Cf_lex.x -> (string -> 'a) -> (char #Cf_parser.cursor, 'a) Cf_lex.X.r
      val ( $@ ) :
        Cf_lex.x ->
        (int -> (char #Cf_parser.cursor as 'b, 'a) Cf_lex.X.t) ->
        ('b, 'a) Cf_lex.X.r
      val ( !@ ) :
        (char #Cf_parser.cursor as 'b, 'a) Cf_lex.X.r list ->
        ('b, 'a) Cf_lex.X.r
      val ( ?~ ) : Cf_lex.x -> (char #Cf_parser.cursor, string) Cf_lex.X.t
      val ( ?$ ) : string -> (char #Cf_parser.cursor, string) Cf_lex.X.t
    end
end