diff --git a/codegen/src/json.rs b/codegen/src/json.rs
index 532260e..d870a64 100644
--- a/codegen/src/json.rs
+++ b/codegen/src/json.rs
@@ -1,7 +1,7 @@
 use crate::types;
 
 use std::collections::BTreeMap;
-use std::fs::File;
+use std::fs::{self, File};
 use std::io::prelude::*;
 use std::path::Path;
 
@@ -14,17 +14,18 @@
 
     let manifest: Manifest = toml::from_str(&s).unwrap();
 
-    let f = ::std::fs::File::create(codegen_root.join("../syn.json")).unwrap();
+    let introspect = Introspect {
+        version: manifest.package.version,
+        types: defs.types.clone(),
+        tokens: defs.tokens.clone(),
+    };
 
-    serde_json::to_writer_pretty(
-        f,
-        &Introspect {
-            version: &manifest.package.version,
-            types: &defs.types,
-            tokens: &defs.tokens,
-        },
-    )
-    .unwrap();
+    let j = serde_json::to_string_pretty(&introspect).unwrap();
+    let check: Introspect = serde_json::from_str(&j).unwrap();
+    assert_eq!(introspect, check);
+
+    let json_path = codegen_root.join("../syn.json");
+    fs::write(json_path, j).unwrap();
 }
 
 #[derive(Debug, Deserialize)]
@@ -37,10 +38,10 @@
     version: String,
 }
 
-#[derive(Debug, Serialize)]
-struct Introspect<'a> {
+#[derive(Debug, PartialEq, Serialize, Deserialize)]
+struct Introspect {
     /// The `syn` version used to generate the introspection file
-    version: &'a str,
-    types: &'a [types::Node],
-    tokens: &'a BTreeMap<String, String>,
+    version: String,
+    types: Vec<types::Node>,
+    tokens: BTreeMap<String, String>,
 }
diff --git a/codegen/src/types.rs b/codegen/src/types.rs
index 58ba448..e593a66 100644
--- a/codegen/src/types.rs
+++ b/codegen/src/types.rs
@@ -4,13 +4,13 @@
 use std::collections::BTreeMap;
 use std::ops;
 
-#[derive(Debug, Clone)]
+#[derive(Debug, Clone, PartialEq)]
 pub struct Definitions {
     pub types: Vec<Node>,
     pub tokens: BTreeMap<String, String>,
 }
 
-#[derive(Debug, Clone, Serialize)]
+#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
 pub struct Node {
     pub ident: String,
     pub features: Features,
@@ -22,7 +22,7 @@
     pub data: Data,
 }
 
-#[derive(Debug, Clone, Serialize)]
+#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
 pub enum Data {
     Private,
     #[serde(rename = "fields")]
@@ -31,13 +31,13 @@
     Enum(Vec<Variant>),
 }
 
-#[derive(Debug, Clone, Serialize)]
+#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
 pub struct Variant {
     pub ident: String,
     pub fields: Vec<Type>,
 }
 
-#[derive(Debug, Clone, Serialize)]
+#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
 #[serde(rename_all = "lowercase")]
 pub enum Type {
     /// Type defined by `syn`
@@ -65,13 +65,13 @@
     Tuple(Vec<Type>),
 }
 
-#[derive(Debug, Clone, Serialize)]
+#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
 pub struct Punctuated {
     pub element: Box<Type>,
     pub punct: String,
 }
 
-#[derive(Debug, Default, Clone, Serialize)]
+#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
 pub struct Features {
     any: Vec<String>,
 }
