functor (M : S0_phantom-> sig  end