functor (X : sig  end-> Key