sig
  type specifier = string
  type context
  val register_expr_specifier :
    Pa_estring.specifier ->
    (Pa_estring.context ->
     Camlp4.PreCast.Loc.t -> string -> Camlp4.PreCast.Ast.expr) ->
    unit
  val register_patt_specifier :
    Pa_estring.specifier ->
    (Pa_estring.context ->
     Camlp4.PreCast.Loc.t -> string -> Camlp4.PreCast.Ast.patt) ->
    unit
  val register_when_specifier :
    Pa_estring.specifier ->
    (Pa_estring.context ->
     Camlp4.PreCast.Loc.t ->
     Camlp4.PreCast.Ast.ident -> string -> Camlp4.PreCast.Ast.expr) ->
    unit
  val register_shared_expr :
    Pa_estring.context -> Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.ident
  type 'a llist =
      Nil of Camlp4.PreCast.Loc.t
    | Cons of Camlp4.PreCast.Loc.t * 'a * 'Pa_estring.llist
  val loc_of_llist : 'Pa_estring.llist -> Camlp4.PreCast.Loc.t
  val llength : 'Pa_estring.llist -> int
  val lfoldr :
    (Camlp4.PreCast.Loc.t -> '-> 'acc -> 'acc) ->
    (Camlp4.PreCast.Loc.t -> 'acc) -> 'Pa_estring.llist -> 'acc
  val list_of_llist : 'Pa_estring.llist -> 'a list
  val llist_of_list : Camlp4.PreCast.Loc.t -> 'a list -> 'Pa_estring.llist
  val ldrop : int -> 'Pa_estring.llist -> 'Pa_estring.llist
  val ltake : int -> 'Pa_estring.llist -> 'Pa_estring.llist
  val lappend :
    'Pa_estring.llist -> 'Pa_estring.llist -> 'Pa_estring.llist
  val llist_expr :
    (Camlp4.PreCast.Loc.t -> '-> Camlp4.PreCast.Ast.expr) ->
    'Pa_estring.llist -> Camlp4.PreCast.Ast.expr
  val llist_patt :
    (Camlp4.PreCast.Loc.t -> '-> Camlp4.PreCast.Ast.patt) ->
    'Pa_estring.llist -> Camlp4.PreCast.Ast.patt
  val unescape : Camlp4.PreCast.Loc.t -> string -> char Pa_estring.llist
end