Why are structs required to use all their generic types?

125 points Droggl 32 comments

Eg. why is

struct Foo<T> {}

invalid? I understand how to work around it with PhantomData, but is there a category of problems this requirement is supposed to safeguard against?

Edit: Formatting