functor (M : S0) -> sig  end