diff --git a/src/data.rs b/src/data.rs
index d9b436b..600c8f1 100644
--- a/src/data.rs
+++ b/src/data.rs
@@ -112,7 +112,7 @@
 
     impl Field {
         named!(pub parse_struct -> Self, do_parse!(
-            attrs: many0!(call!(Attribute::parse_outer)) >>
+            attrs: many0!(Attribute::parse_outer) >>
             vis: syn!(Visibility) >>
             id: syn!(Ident) >>
             colon: punct!(:) >>
@@ -127,7 +127,7 @@
         ));
 
         named!(pub parse_tuple -> Self, do_parse!(
-            attrs: many0!(call!(Attribute::parse_outer)) >>
+            attrs: many0!(Attribute::parse_outer) >>
             vis: syn!(Visibility) >>
             ty: syn!(Type) >>
             (Field {
diff --git a/src/derive.rs b/src/derive.rs
index da3f2ea..a007c03 100644
--- a/src/derive.rs
+++ b/src/derive.rs
@@ -50,7 +50,7 @@
 
     impl Synom for DeriveInput {
         named!(parse -> Self, do_parse!(
-            attrs: many0!(call!(Attribute::parse_outer)) >>
+            attrs: many0!(Attribute::parse_outer) >>
             vis: syn!(Visibility) >>
             which: alt!(
                 keyword!(struct) => { Ok }
@@ -127,7 +127,7 @@
 
     impl Synom for Variant {
         named!(parse -> Self, do_parse!(
-            attrs: many0!(call!(Attribute::parse_outer)) >>
+            attrs: many0!(Attribute::parse_outer) >>
             id: syn!(Ident) >>
             data: alt!(
                 struct_like_body => { |(d, b)| VariantData::Struct(d, b) }
diff --git a/src/expr.rs b/src/expr.rs
index 6f81edb..6af15fc 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -1452,7 +1452,7 @@
         named!(parse -> Self, do_parse!(
             match_: keyword!(match) >>
             obj: expr_no_struct >>
-            res: braces!(many0!(syn!(Arm))) >>
+            res: braces!(many0!(Arm::parse)) >>
             ({
                 let (arms, brace) = res;
                 ExprMatch {
@@ -1494,7 +1494,7 @@
     #[cfg(feature = "full")]
     impl Synom for Arm {
         named!(parse -> Self, do_parse!(
-            attrs: many0!(call!(Attribute::parse_outer)) >>
+            attrs: many0!(Attribute::parse_outer) >>
             pats: call!(Delimited::parse_separated_nonempty) >>
             guard: option!(tuple!(keyword!(if), syn!(Expr))) >>
             rocket: punct!(=>) >>
@@ -1809,10 +1809,10 @@
     #[cfg(feature = "full")]
     impl Block {
         named!(pub parse_within -> Vec<Stmt>, do_parse!(
-            many0!(punct!(;)) >>
-            mut standalone: many0!(terminated!(syn!(Stmt), many0!(punct!(;)))) >>
+            many0!(<Token![;]>::parse) >>
+            mut standalone: many0!(terminated!(syn!(Stmt), many0!(<Token![;]>::parse))) >>
             last: option!(do_parse!(
-                attrs: many0!(call!(Attribute::parse_outer)) >>
+                attrs: many0!(Attribute::parse_outer) >>
                 mut e: syn!(Expr) >>
                 ({
                     e.attrs = attrs;
@@ -1846,7 +1846,7 @@
 
     #[cfg(feature = "full")]
     named!(stmt_mac -> Stmt, do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         what: syn!(Path) >>
         bang: punct!(!) >>
     // Only parse braces here; paren and bracket will get parsed as
@@ -1872,7 +1872,7 @@
 
     #[cfg(feature = "full")]
     named!(stmt_local -> Stmt, do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         let_: keyword!(let) >>
         pat: syn!(Pat) >>
         ty: option!(tuple!(punct!(:), syn!(Type))) >>
@@ -1895,7 +1895,7 @@
 
     #[cfg(feature = "full")]
     named!(stmt_blockexpr -> Stmt, do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         mut e: expr_nosemi >>
         // If the next token is a `.` or a `?` it is special-cased to parse as
         // an expression instead of a blockexpression.
@@ -1914,7 +1914,7 @@
 
     #[cfg(feature = "full")]
     named!(stmt_expr -> Stmt, do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         mut e: syn!(Expr) >>
         semi: punct!(;) >>
         ({
diff --git a/src/file.rs b/src/file.rs
index fd3d5b2..fe06958 100644
--- a/src/file.rs
+++ b/src/file.rs
@@ -16,8 +16,8 @@
 
     impl Synom for File {
         named!(parse -> Self, do_parse!(
-            attrs: many0!(call!(Attribute::parse_inner)) >>
-            items: many0!(syn!(Item)) >>
+            attrs: many0!(Attribute::parse_inner) >>
+            items: many0!(Item::parse) >>
             (File {
                 shebang: None,
                 attrs: attrs,
diff --git a/src/generics.rs b/src/generics.rs
index fee556c..646b64e 100644
--- a/src/generics.rs
+++ b/src/generics.rs
@@ -239,7 +239,7 @@
 
     impl Synom for LifetimeDef {
         named!(parse -> Self, do_parse!(
-            attrs: many0!(call!(Attribute::parse_outer)) >>
+            attrs: many0!(Attribute::parse_outer) >>
             life: syn!(Lifetime) >>
             colon: option!(punct!(:)) >>
             bounds: cond!(
@@ -272,7 +272,7 @@
 
     impl Synom for TypeParam {
         named!(parse -> Self, do_parse!(
-            attrs: many0!(call!(Attribute::parse_outer)) >>
+            attrs: many0!(Attribute::parse_outer) >>
             id: syn!(Ident) >>
             colon: option!(punct!(:)) >>
             bounds: cond!(
@@ -321,7 +321,7 @@
 
     impl Synom for ConstParam {
         named!(parse -> Self, do_parse!(
-            attrs: many0!(call!(Attribute::parse_outer)) >>
+            attrs: many0!(Attribute::parse_outer) >>
             const_: keyword!(const) >>
             ident: syn!(Ident) >>
             colon: punct!(:) >>
diff --git a/src/item.rs b/src/item.rs
index d38d25f..7fd97a3 100644
--- a/src/item.rs
+++ b/src/item.rs
@@ -510,7 +510,7 @@
     ));
 
     impl_synom!(ItemMacro "macro item" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         what: syn!(Path) >>
         bang: punct!(!) >>
         ident: option!(syn!(Ident)) >>
@@ -529,7 +529,7 @@
 
     // TODO: figure out the actual grammar; is body required to be braced?
     impl_synom!(ItemMacro2 "macro2 item" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         vis: syn!(Visibility) >>
         macro_: keyword!(macro) >>
         ident: syn!(Ident) >>
@@ -546,7 +546,7 @@
     ));
 
     impl_synom!(ItemExternCrate "extern crate item" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         vis: syn!(Visibility) >>
         extern_: keyword!(extern) >>
         crate_: keyword!(crate) >>
@@ -565,7 +565,7 @@
     ));
 
     impl_synom!(ItemUse "use item" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         vis: syn!(Visibility) >>
         use_: keyword!(use) >>
         leading_colon: option!(punct!(::)) >>
@@ -652,7 +652,7 @@
     ));
 
     impl_synom!(ItemStatic "static item" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         vis: syn!(Visibility) >>
         static_: keyword!(static) >>
         mutability: syn!(Mutability) >>
@@ -677,7 +677,7 @@
     ));
 
     impl_synom!(ItemConst "const item" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         vis: syn!(Visibility) >>
         const_: keyword!(const) >>
         ident: syn!(Ident) >>
@@ -700,7 +700,7 @@
     ));
 
     impl_synom!(ItemFn "fn item" do_parse!(
-        outer_attrs: many0!(call!(Attribute::parse_outer)) >>
+        outer_attrs: many0!(Attribute::parse_outer) >>
         vis: syn!(Visibility) >>
         constness: syn!(Constness) >>
         unsafety: syn!(Unsafety) >>
@@ -712,7 +712,7 @@
         ret: syn!(ReturnType) >>
         where_clause: syn!(WhereClause) >>
         inner_attrs_stmts: braces!(tuple!(
-            many0!(call!(Attribute::parse_inner)),
+            many0!(Attribute::parse_inner),
             call!(Block::parse_within)
         )) >>
         (ItemFn {
@@ -787,7 +787,7 @@
     }
 
     impl_synom!(ItemMod "mod item" do_parse!(
-        outer_attrs: many0!(call!(Attribute::parse_outer)) >>
+        outer_attrs: many0!(Attribute::parse_outer) >>
         vis: syn!(Visibility) >>
         mod_: keyword!(mod) >>
         ident: syn!(Ident) >>
@@ -800,8 +800,8 @@
             |
             braces!(
                 tuple!(
-                    many0!(call!(Attribute::parse_inner)),
-                    many0!(syn!(Item))
+                    many0!(Attribute::parse_inner),
+                    many0!(Item::parse)
                 )
             ) => {|((inner_attrs, items), brace)| (
                 inner_attrs,
@@ -824,9 +824,9 @@
     ));
 
     impl_synom!(ItemForeignMod "foreign mod item" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         abi: syn!(Abi) >>
-        items: braces!(many0!(syn!(ForeignItem))) >>
+        items: braces!(many0!(ForeignItem::parse)) >>
         (ItemForeignMod {
             attrs: attrs,
             abi: abi,
@@ -844,7 +844,7 @@
     ));
 
     impl_synom!(ForeignItemFn "foreign function" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         vis: syn!(Visibility) >>
         fn_: keyword!(fn) >>
         ident: syn!(Ident) >>
@@ -883,7 +883,7 @@
     ));
 
     impl_synom!(ForeignItemStatic "foreign static" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         vis: syn!(Visibility) >>
         static_: keyword!(static) >>
         mutability: syn!(Mutability) >>
@@ -904,7 +904,7 @@
     ));
 
     impl_synom!(ForeignItemType "foreign type" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         vis: syn!(Visibility) >>
         type_: keyword!(type) >>
         ident: syn!(Ident) >>
@@ -919,7 +919,7 @@
     ));
 
     impl_synom!(ItemType "type item" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         vis: syn!(Visibility) >>
         type_: keyword!(type) >>
         ident: syn!(Ident) >>
@@ -958,7 +958,7 @@
     ));
 
     impl_synom!(ItemUnion "union item" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         vis: syn!(Visibility) >>
         union_: keyword!(union) >>
         ident: syn!(Ident) >>
@@ -980,7 +980,7 @@
     ));
 
     impl_synom!(ItemTrait "trait item" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         vis: syn!(Visibility) >>
         unsafety: syn!(Unsafety) >>
         auto_: option!(keyword!(auto)) >>
@@ -992,7 +992,7 @@
             call!(Delimited::parse_separated_nonempty)
         ) >>
         where_clause: syn!(WhereClause) >>
-        body: braces!(many0!(syn!(TraitItem))) >>
+        body: braces!(many0!(TraitItem::parse)) >>
         (ItemTrait {
             attrs: attrs,
             vis: vis,
@@ -1012,7 +1012,7 @@
     ));
 
     impl_synom!(ItemDefaultImpl "default impl item" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         unsafety: syn!(Unsafety) >>
         impl_: keyword!(impl) >>
         path: syn!(Path) >>
@@ -1041,7 +1041,7 @@
     ));
 
     impl_synom!(TraitItemConst "const trait item" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         const_: keyword!(const) >>
         ident: syn!(Ident) >>
         colon: punct!(:) >>
@@ -1060,7 +1060,7 @@
     ));
 
     impl_synom!(TraitItemMethod "method trait item" do_parse!(
-        outer_attrs: many0!(call!(Attribute::parse_outer)) >>
+        outer_attrs: many0!(Attribute::parse_outer) >>
         constness: syn!(Constness) >>
         unsafety: syn!(Unsafety) >>
         abi: option!(syn!(Abi)) >>
@@ -1071,7 +1071,7 @@
         ret: syn!(ReturnType) >>
         where_clause: syn!(WhereClause) >>
         body: option!(braces!(
-            tuple!(many0!(call!(Attribute::parse_inner)),
+            tuple!(many0!(Attribute::parse_inner),
                    call!(Block::parse_within))
         )) >>
         semi: cond!(body.is_none(), punct!(;)) >>
@@ -1116,7 +1116,7 @@
     ));
 
     impl_synom!(TraitItemType "trait item type" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         type_: keyword!(type) >>
         ident: syn!(Ident) >>
         generics: syn!(Generics) >>
@@ -1143,7 +1143,7 @@
     ));
 
     impl_synom!(TraitItemMacro "trait item macro" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         mac: syn!(Macro) >>
         cond!(!mac.is_braced(), punct!(;)) >>
         (TraitItemMacro {
@@ -1153,7 +1153,7 @@
     ));
 
     impl_synom!(ItemImpl "impl item" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         defaultness: syn!(Defaultness) >>
         unsafety: syn!(Unsafety) >>
         impl_: keyword!(impl) >>
@@ -1170,7 +1170,7 @@
         ) >>
         self_ty: syn!(Type) >>
         where_clause: syn!(WhereClause) >>
-        body: braces!(many0!(syn!(ImplItem))) >>
+        body: braces!(many0!(ImplItem::parse)) >>
         (ItemImpl {
             attrs: attrs,
             defaultness: defaultness,
@@ -1198,7 +1198,7 @@
     ));
 
     impl_synom!(ImplItemConst "const item in impl block" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         vis: syn!(Visibility) >>
         defaultness: syn!(Defaultness) >>
         const_: keyword!(const) >>
@@ -1223,7 +1223,7 @@
     ));
 
     impl_synom!(ImplItemMethod "method in impl block" do_parse!(
-        outer_attrs: many0!(call!(Attribute::parse_outer)) >>
+        outer_attrs: many0!(Attribute::parse_outer) >>
         vis: syn!(Visibility) >>
         defaultness: syn!(Defaultness) >>
         constness: syn!(Constness) >>
@@ -1236,7 +1236,7 @@
         ret: syn!(ReturnType) >>
         where_clause: syn!(WhereClause) >>
         inner_attrs_stmts: braces!(tuple!(
-            many0!(call!(Attribute::parse_inner)),
+            many0!(Attribute::parse_inner),
             call!(Block::parse_within)
         )) >>
         (ImplItemMethod {
@@ -1273,7 +1273,7 @@
     ));
 
     impl_synom!(ImplItemType "type in impl block" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         vis: syn!(Visibility) >>
         defaultness: syn!(Defaultness) >>
         type_: keyword!(type) >>
@@ -1296,7 +1296,7 @@
     ));
 
     impl_synom!(ImplItemMacro "macro in impl block" do_parse!(
-        attrs: many0!(call!(Attribute::parse_outer)) >>
+        attrs: many0!(Attribute::parse_outer) >>
         mac: syn!(Macro) >>
         cond!(!mac.is_braced(), punct!(;)) >>
         (ImplItemMacro {
diff --git a/syn_codegen/src/main.rs b/syn_codegen/src/main.rs
index 0166347..05bfa4b 100644
--- a/syn_codegen/src/main.rs
+++ b/syn_codegen/src/main.rs
@@ -199,7 +199,7 @@
     pub struct AstStruct(pub Vec<AstItem>);
     impl Synom for AstStruct {
         named!(parse -> Self, map!(braces!(do_parse!(
-            many0!(call!(Attribute::parse_outer)) >>
+            many0!(Attribute::parse_outer) >>
             keyword!(pub) >>
             keyword!(struct) >>
             res: call!(ast_struct_inner) >>
@@ -226,7 +226,7 @@
         inner: Option<AstItem>,
     }
     named!(eos_variant -> EosVariant, do_parse!(
-        many0!(call!(Attribute::parse_outer)) >>
+        many0!(Attribute::parse_outer) >>
         keyword!(pub) >>
         variant: syn!(Ident) >>
         member: map!(parens!(alt!(
@@ -246,11 +246,11 @@
     pub struct AstEnumOfStructs(pub Vec<AstItem>);
     impl Synom for AstEnumOfStructs {
         named!(parse -> Self, map!(braces!(do_parse!(
-            many0!(call!(Attribute::parse_outer)) >>
+            many0!(Attribute::parse_outer) >>
             keyword!(pub) >>
             keyword!(enum) >>
             id: syn!(Ident) >>
-            body: braces!(many0!(call!(eos_variant))) >>
+            body: braces!(many0!(eos_variant)) >>
             option!(syn!(Ident)) >> // do_not_generate_to_tokens
             ({
                 // XXX: This is really gross - we shouldn't have to convert the
