Another way for the language to support this use case would be to allow impls on type-constructors:
impl S {
fn new() -> S<impl Debug> { ... }
}
but there isn't a proposal for this (we'll have to see how generic associated types turn out and see whether/how first-class type constructors should be added to the language).