sig
type transform = Uppercase | Lowercase | Capitalize | Uncapitalize
val transform_of_string : string -> Carcass.Pat.transform option
val transform_to_string : Carcass.Pat.transform -> string
val pp_transform : Carcass.Pat.transform Fmt.t
type lexeme = Lit of string | Var of string * Carcass.Pat.transform option
type t = (Carcass.Pat.lexeme * Carcass.Loc.t) list * Carcass.Loc.t
val empty : Carcass.Pat.t
val dom : Carcass.Pat.t -> Astring.String.set
val equal : Carcass.Pat.t -> Carcass.Pat.t -> bool
val compare : Carcass.Pat.t -> Carcass.Pat.t -> int
val to_string : ?flesh:bool -> Carcass.Pat.t -> string
val of_input :
?flesh:bool ->
src:Carcass.Loc.src ->
[ `Channel of Pervasives.in_channel | `String of string ] ->
(Carcass.Pat.t, [> Carcass.Error.parse ]) Result.result
val pp : ?flesh:bool -> Carcass.Pat.t Fmt.t
val subst : (string -> string option) -> Carcass.Pat.t -> Carcass.Pat.t
type env
val env :
?undef:(string ->
(Carcass.Pat.t, Carcass.Error.parse) Rresult.result option) ->
Carcass.Pat.t Astring.String.map -> Carcass.Pat.env
val env_var_value :
Carcass.Pat.env ->
string ->
(string * Carcass.Loc.t, [> Carcass.Error.eval ]) Rresult.result option
val eval :
Carcass.Pat.env ->
Carcass.Pat.t ->
(string * Carcass.Loc.t, [> Carcass.Error.eval ]) Rresult.result
val query :
?init:string Astring.String.map ->
Carcass.Pat.t -> string -> string Astring.String.map option
end