functor (M : S1_phantom-> sig  end