diff --git a/src/gen/fold.rs b/src/gen/fold.rs
index 9f4f9cb..4ca3dde 100644
--- a/src/gen/fold.rs
+++ b/src/gen/fold.rs
@@ -400,6 +400,16 @@
 
 }
 
+pub fn fold_ident<V: Folder + ?Sized>(_visitor: &mut V, mut _i: Ident) -> Ident {
+    _i.span = _visitor.fold_span(_i.span);
+    _i
+}
+
+pub fn fold_lifetime<V: Folder + ?Sized>(_visitor: &mut V, mut _i: Lifetime) -> Lifetime {
+    _i.span = _visitor.fold_span(_i.span);
+    _i
+}
+
 
 pub fn fold_abi<V: Folder + ?Sized>(_visitor: &mut V, _i: Abi) -> Abi {
     Abi {
@@ -1568,13 +1578,6 @@
         where_clause: (_i . where_clause).map(|it| { _visitor.fold_where_clause(it) }),
     }
 }
-
-pub fn fold_ident<V: Folder + ?Sized>(_visitor: &mut V, _i: Ident) -> Ident {
-    Ident {
-        sym: _i . sym,
-        span: _visitor.fold_span(_i . span),
-    }
-}
 # [ cfg ( feature = "full" ) ]
 pub fn fold_impl_item<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItem) -> ImplItem {
     use ::ImplItem::*;
@@ -1960,13 +1963,6 @@
     }
 }
 
-pub fn fold_lifetime<V: Folder + ?Sized>(_visitor: &mut V, _i: Lifetime) -> Lifetime {
-    Lifetime {
-        sym: _i . sym,
-        span: _visitor.fold_span(_i . span),
-    }
-}
-
 pub fn fold_lifetime_def<V: Folder + ?Sized>(_visitor: &mut V, _i: LifetimeDef) -> LifetimeDef {
     LifetimeDef {
         attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
diff --git a/src/ident.rs b/src/ident.rs
index 5d85b48..f93fb43 100644
--- a/src/ident.rs
+++ b/src/ident.rs
@@ -87,7 +87,7 @@
 /// ```
 #[derive(Copy, Clone, Debug)]
 pub struct Ident {
-    pub sym: Term,
+    sym: Term,
     pub span: Span,
 }
 
diff --git a/src/lifetime.rs b/src/lifetime.rs
index bfa59fd..44359de 100644
--- a/src/lifetime.rs
+++ b/src/lifetime.rs
@@ -8,7 +8,7 @@
 #[cfg_attr(feature = "extra-traits", derive(Debug))]
 #[cfg_attr(feature = "clone-impls", derive(Clone))]
 pub struct Lifetime {
-    pub sym: Term,
+    sym: Term,
     pub span: Span,
 }
 
diff --git a/syn_codegen/src/main.rs b/syn_codegen/src/main.rs
index 4307886..ab10134 100644
--- a/syn_codegen/src/main.rs
+++ b/syn_codegen/src/main.rs
@@ -714,6 +714,7 @@
             under_name = under_name,
             ty = s.ast.ident,
         ));
+        let before_fold_impl_len = state.fold_impl.len();
         state.fold_impl.push_str(&format!(
             "{features}\n\
              pub fn fold_{under_name}<V: Folder + ?Sized>(\
@@ -916,6 +917,12 @@
         state.visit_impl.push_str("}\n");
         state.visit_mut_impl.push_str("}\n");
         state.fold_impl.push_str("}\n");
+
+        if s.ast.ident == "Ident" || s.ast.ident == "Lifetime" {
+            // Discard the generated impl. These have private fields and are
+            // handwritten.
+            state.fold_impl.truncate(before_fold_impl_len);
+        }
     }
 }
 
@@ -1003,6 +1010,16 @@
 {fold_trait}
 }}
 
+pub fn fold_ident<V: Folder + ?Sized>(_visitor: &mut V, mut _i: Ident) -> Ident {{
+    _i.span = _visitor.fold_span(_i.span);
+    _i
+}}
+
+pub fn fold_lifetime<V: Folder + ?Sized>(_visitor: &mut V, mut _i: Lifetime) -> Lifetime {{
+    _i.span = _visitor.fold_span(_i.span);
+    _i
+}}
+
 {fold_impl}
 ",
         full_macro = full_macro,
