sig   type t = adt   val hash : t -> int   val equal : t -> t -> bool   val compare : t -> t -> int   val pretty : Format.formatter -> t -> unit   val debug : t -> string   val basename : t -> string end