Remove some surface area from Delimited api
diff --git a/src/gen_helper.rs b/src/gen_helper.rs
index 4970805..fdf86a0 100644
--- a/src/gen_helper.rs
+++ b/src/gen_helper.rs
@@ -1,6 +1,6 @@
 #[cfg(feature = "fold")]
 pub mod fold {
-    use delimited::Delimited;
+    use delimited::{Delimited, Element};
     use fold::Folder;
     use proc_macro2::Span;
 
@@ -19,10 +19,10 @@
     impl<T, U> FoldHelper for Delimited<T, U> {
         type Item = T;
         fn lift<F>(self, mut f: F) -> Self where F: FnMut(Self::Item) -> Self::Item {
-            self.into_iter().map(|elem| {
-                let (t, u) = elem.into_tuple();
-                (f(t), u)
-            }).collect::<Vec<(T, Option<U>)>>().into()
+            self.into_iter()
+                .map(Element::into_tuple)
+                .map(|(t, u)| Element::new(f(t), u))
+                .collect()
         }
     }