Inline mutability as just a token
diff --git a/src/expr.rs b/src/expr.rs
index 2213966..7c46224 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -270,7 +270,7 @@
         pub AddrOf(ExprAddrOf #full {
             pub attrs: Vec<Attribute>,
             pub and_token: Token![&],
-            pub mutbl: Mutability,
+            pub mutability: Option<Token![mut]>,
             pub expr: Box<Expr>,
         }),
 
@@ -573,8 +573,8 @@
         /// field must be `None`). Disambiguation cannot be done with parser alone, so it happens
         /// during name resolution.
         pub Ident(PatIdent {
-            pub mode: Option<Token![ref]>,
-            pub mutability: Mutability,
+            pub by_ref: Option<Token![ref]>,
+            pub mutability: Option<Token![mut]>,
             pub ident: Ident,
             pub at_token: Option<Token![@]>,
             pub subpat: Option<Box<Pat>>,
@@ -624,7 +624,7 @@
         /// A reference pattern, e.g. `&mut (a, b)`
         pub Ref(PatRef {
             pub and_token: Token![&],
-            pub mutbl: Mutability,
+            pub mutability: Option<Token![mut]>,
             pub pat: Box<Pat>,
         }),
         /// A literal
@@ -1118,12 +1118,12 @@
         |
         do_parse!(
             and: punct!(&) >>
-            mutability: syn!(Mutability) >>
+            mutability: option!(keyword!(mut)) >>
             expr: call!(unary_expr, allow_struct, true) >>
             (ExprAddrOf {
                 attrs: Vec::new(),
                 and_token: and,
-                mutbl: mutability,
+                mutability: mutability,
                 expr: Box::new(expr.into()),
             }.into())
         )
@@ -2087,8 +2087,8 @@
     #[cfg(feature = "full")]
     impl Synom for PatIdent {
         named!(parse -> Self, do_parse!(
-            mode: option!(keyword!(ref)) >>
-            mutability: syn!(Mutability) >>
+            by_ref: option!(keyword!(ref)) >>
+            mutability: option!(keyword!(mut)) >>
             name: alt!(
                 syn!(Ident)
                 |
@@ -2098,7 +2098,7 @@
             not!(punct!(::)) >>
             subpat: option!(tuple!(punct!(@), syn!(Pat))) >>
             (PatIdent {
-                mode: mode,
+                by_ref: by_ref,
                 mutability: mutability,
                 ident: name,
                 at_token: subpat.as_ref().map(|p| Token![@]((p.0).0)),
@@ -2157,12 +2157,12 @@
             |
             do_parse!(
                 boxed: option!(keyword!(box)) >>
-                mode: option!(keyword!(ref)) >>
-                mutability: syn!(Mutability) >>
+                by_ref: option!(keyword!(ref)) >>
+                mutability: option!(keyword!(mut)) >>
                 ident: syn!(Ident) >>
                 ({
                     let mut pat: Pat = PatIdent {
-                        mode: mode,
+                        by_ref: by_ref,
                         mutability: mutability,
                         ident: ident,
                         subpat: None,
@@ -2257,11 +2257,11 @@
     impl Synom for PatRef {
         named!(parse -> Self, do_parse!(
             and: punct!(&) >>
-            mutability: syn!(Mutability) >>
+            mutability: option!(keyword!(mut)) >>
             pat: syn!(Pat) >>
             (PatRef {
                 pat: Box::new(pat),
-                mutbl: mutability,
+                mutability: mutability,
                 and_token: and,
             })
         ));
@@ -2794,7 +2794,7 @@
         fn to_tokens(&self, tokens: &mut Tokens) {
             tokens.append_all(self.attrs.outer());
             self.and_token.to_tokens(tokens);
-            self.mutbl.to_tokens(tokens);
+            self.mutability.to_tokens(tokens);
             self.expr.to_tokens(tokens);
         }
     }
@@ -2927,7 +2927,7 @@
     #[cfg(feature = "full")]
     impl ToTokens for PatIdent {
         fn to_tokens(&self, tokens: &mut Tokens) {
-            self.mode.to_tokens(tokens);
+            self.by_ref.to_tokens(tokens);
             self.mutability.to_tokens(tokens);
             self.ident.to_tokens(tokens);
             if self.subpat.is_some() {
@@ -3001,7 +3001,7 @@
     impl ToTokens for PatRef {
         fn to_tokens(&self, tokens: &mut Tokens) {
             self.and_token.to_tokens(tokens);
-            self.mutbl.to_tokens(tokens);
+            self.mutability.to_tokens(tokens);
             self.pat.to_tokens(tokens);
         }
     }