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