functor (X : Sig.X) -> S