functor (X : sig  end-> Shape