Clean up control flow of write::gen
diff --git a/gen/src/write.rs b/gen/src/write.rs
index 7753ebf..f5ef807 100644
--- a/gen/src/write.rs
+++ b/gen/src/write.rs
@@ -22,11 +22,7 @@
     write_namespace_forward_declarations(out, &apis_by_namespace);
     write_data_structures(out, apis);
     write_functions(out, apis);
-
-    if !header {
-        out.next_section();
-        write_generic_instantiations(out);
-    }
+    write_generic_instantiations(out);
 
     builtin::write(out);
     include::write(out);
@@ -957,6 +953,11 @@
 }
 
 fn write_generic_instantiations(out: &mut OutFile) {
+    if out.header {
+        return;
+    }
+
+    out.next_section();
     out.set_namespace(Default::default());
     out.begin_block(Block::ExternC);
     for ty in out.types {