include sig ... end
val equal : t -> t -> boolval compare : t -> t -> intval pretty : unit -> t -> Pretty.docval name : unit -> stringval arbitrary : unit -> t QCheck.arbitraryval leq : 'a -> 'b -> boolval join : 'a -> 'b -> 'aval widen : 'a -> 'b -> 'aval meet : 'a -> 'b -> 'aval narrow : 'a -> 'b -> 'aval pretty_diff : unit -> 'a -> Pretty.docval pop : 'a list -> 'a list