functor (Comp : Comp-> sig type t = Comp.t val compare : t comp end