Typedef parsing
diff --git a/src/generics.rs b/src/generics.rs
index c0d5c94..40025c4 100644
--- a/src/generics.rs
+++ b/src/generics.rs
@@ -89,8 +89,8 @@
     use ident::parsing::ident;
     use ty::parsing::{ty, poly_trait_ref};
 
-    named!(pub generics -> Generics, do_parse!(
-        bracketed: alt!(
+    named!(pub generics -> Generics, map!(
+        alt!(
             do_parse!(
                 punct!("<") >>
                 lifetimes: separated_list!(punct!(","), lifetime_def) >>
@@ -103,13 +103,12 @@
             )
             |
             epsilon!() => { |_| (Vec::new(), Vec::new()) }
-        ) >>
-        where_clause: where_clause >>
-        (Generics {
-            lifetimes: bracketed.0,
-            ty_params: bracketed.1,
-            where_clause: where_clause,
-        })
+        ),
+        |(lifetimes, ty_params)| Generics {
+            lifetimes: lifetimes,
+            ty_params: ty_params,
+            where_clause: Default::default(),
+        }
     ));
 
     named!(pub lifetime -> Lifetime, preceded!(