type t = | BVar of int | FVar of string | Lam of t | App of t * t module SSet : Set.S with type elt = string exception Not_locally_closed val free_variables : t -> SSet.t val free_variable_list : t -> string list val pretty : t -> string val open_at : int -> string -> t -> t val open_top : t -> string -> t val close_at : int -> string -> t -> t val close_top : t -> string -> t val lc : t -> bool val require_lc : t -> unit val subst_bvar : int -> t -> t -> t val subst_fvar : string -> t -> t -> t val substitute : string -> t -> t -> t val convert_from_named : Named.t -> t val convert_to_named : t -> Named.t val alpha_equivalent : t -> t -> bool val alpha_equivalent_counted : t -> t -> bool * int * int val normalise : t -> t val normalise_counted : t -> t * int * int