# Error code E0747

Generic arguments were not provided in the same order as the corresponding generic parameters are declared.

Erroneous code example:

    #![allow(unused)]
    fn main() {
    struct S<'a, T>(&'a T);

    type X = S<(), 'static>; // error: the type argument is provided before the
                             // lifetime argument
    }

The argument order should be changed to match the parameter declaration order, as in the following:

    #![allow(unused)]
    fn main() {
    struct S<'a, T>(&'a T);

    type X = S<'static, ()>; // ok
    }