Put more common Type generic params first
diff --git a/src/gen/fold.rs b/src/gen/fold.rs
index e5aed1e..9d1eb24 100644
--- a/src/gen/fold.rs
+++ b/src/gen/fold.rs
@@ -1538,16 +1538,16 @@
 
 pub fn fold_generic_param<V: Folder + ?Sized>(_visitor: &mut V, _i: GenericParam) -> GenericParam {
     match _i {
-        GenericParam::Lifetime(_binding_0, ) => {
-            GenericParam::Lifetime (
-                _visitor.fold_lifetime_def(_binding_0),
-            )
-        }
         GenericParam::Type(_binding_0, ) => {
             GenericParam::Type (
                 _visitor.fold_type_param(_binding_0),
             )
         }
+        GenericParam::Lifetime(_binding_0, ) => {
+            GenericParam::Lifetime (
+                _visitor.fold_lifetime_def(_binding_0),
+            )
+        }
         GenericParam::Const(_binding_0, ) => {
             GenericParam::Const (
                 _visitor.fold_const_param(_binding_0),
diff --git a/src/gen/visit.rs b/src/gen/visit.rs
index 9d75054..14a0d1a 100644
--- a/src/gen/visit.rs
+++ b/src/gen/visit.rs
@@ -1208,12 +1208,12 @@
 
 pub fn visit_generic_param<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast GenericParam) {
     match *_i {
-        GenericParam::Lifetime(ref _binding_0, ) => {
-            _visitor.visit_lifetime_def(_binding_0);
-        }
         GenericParam::Type(ref _binding_0, ) => {
             _visitor.visit_type_param(_binding_0);
         }
+        GenericParam::Lifetime(ref _binding_0, ) => {
+            _visitor.visit_lifetime_def(_binding_0);
+        }
         GenericParam::Const(ref _binding_0, ) => {
             _visitor.visit_const_param(_binding_0);
         }
diff --git a/src/gen/visit_mut.rs b/src/gen/visit_mut.rs
index b091a36..99dec91 100644
--- a/src/gen/visit_mut.rs
+++ b/src/gen/visit_mut.rs
@@ -1208,12 +1208,12 @@
 
 pub fn visit_generic_param_mut<V: VisitorMut + ?Sized>(_visitor: &mut V, _i: &mut GenericParam) {
     match *_i {
-        GenericParam::Lifetime(ref mut _binding_0, ) => {
-            _visitor.visit_lifetime_def_mut(_binding_0);
-        }
         GenericParam::Type(ref mut _binding_0, ) => {
             _visitor.visit_type_param_mut(_binding_0);
         }
+        GenericParam::Lifetime(ref mut _binding_0, ) => {
+            _visitor.visit_lifetime_def_mut(_binding_0);
+        }
         GenericParam::Const(ref mut _binding_0, ) => {
             _visitor.visit_const_param_mut(_binding_0);
         }
diff --git a/src/generics.rs b/src/generics.rs
index 6698621..509fcd2 100644
--- a/src/generics.rs
+++ b/src/generics.rs
@@ -15,13 +15,6 @@
 
 ast_enum_of_structs! {
     pub enum GenericParam {
-        /// A lifetime definition, e.g. `'a: 'b+'c+'d`
-        pub Lifetime(LifetimeDef {
-            pub attrs: Vec<Attribute>,
-            pub lifetime: Lifetime,
-            pub colon_token: Option<Token![:]>,
-            pub bounds: Punctuated<Lifetime, Token![+]>,
-        }),
         /// A generic type parameter, e.g. `T: Into<String>`.
         pub Type(TypeParam {
             pub attrs: Vec<Attribute>,
@@ -31,6 +24,13 @@
             pub eq_token: Option<Token![=]>,
             pub default: Option<Type>,
         }),
+        /// A lifetime definition, e.g. `'a: 'b+'c+'d`
+        pub Lifetime(LifetimeDef {
+            pub attrs: Vec<Attribute>,
+            pub lifetime: Lifetime,
+            pub colon_token: Option<Token![:]>,
+            pub bounds: Punctuated<Lifetime, Token![+]>,
+        }),
         /// A generic const parameter, e.g. `const LENGTH: usize`.
         pub Const(ConstParam {
             pub attrs: Vec<Attribute>,