Module TopDown.S.T

module T: sig .. end

type t = private 
| Var of int
| Apply of TopDown.S.const * t array
val mk_var : int -> t
val mk_const : TopDown.S.const -> t
val mk_apply : TopDown.S.const -> t array -> t
val mk_apply_l : TopDown.S.const -> t list -> t
val is_var : t -> bool
val is_apply : t -> bool
val is_const : t -> bool
val eq : t -> t -> bool
val hash : t -> int
val ground : t -> bool
val vars : t -> int list
val max_var : t -> int

max var, or 0 if ground

val head_symbol : t -> TopDown.S.const
val to_string : t -> string
val pp : Pervasives.out_channel -> t -> unit
val fmt : Format.formatter -> t -> unit
val pp_tuple : Pervasives.out_channel -> t list -> unit
module Tbl: Hashtbl.S  with type key = t