sig
  val ( !: ) : char -> Cf_lexer.expr_t
  val ( !^ ) : (char -> bool) -> Cf_lexer.expr_t
  val ( !~ ) : char Cf_seq.t -> Cf_lexer.expr_t
  val ( !$ ) : string -> Cf_lexer.expr_t
  val ( $| ) : Cf_lexer.expr_t -> Cf_lexer.expr_t -> Cf_lexer.expr_t
  val ( $& ) : Cf_lexer.expr_t -> Cf_lexer.expr_t -> Cf_lexer.expr_t
  val ( !* ) : Cf_lexer.expr_t -> Cf_lexer.expr_t
  val ( !+ ) : Cf_lexer.expr_t -> Cf_lexer.expr_t
  val ( !? ) : Cf_lexer.expr_t -> Cf_lexer.expr_t
  val ( $= ) :
    Cf_lexer.expr_t -> '-> (#Cf_lexer.cursor, 'a) Cf_lexer.rule_t
  val ( $> ) :
    Cf_lexer.expr_t ->
    (char Cf_seq.t -> 'a) -> (#Cf_lexer.cursor, 'a) Cf_lexer.rule_t
  val ( $^ ) :
    Cf_lexer.expr_t ->
    (string -> 'a) -> (#Cf_lexer.cursor, 'a) Cf_lexer.rule_t
  val ( $@ ) :
    Cf_lexer.expr_t ->
    (int -> (#Cf_lexer.cursor as 'a, 'b) Cf_lexer.t) ->
    ('a, 'b) Cf_lexer.rule_t
  val ( !@ ) :
    (#Cf_lexer.cursor as 'a, 'b) Cf_lexer.rule_t list ->
    ('a, 'b) Cf_lexer.rule_t
end