diff --git a/src/ast/module.cc b/src/ast/module.cc
index dfb2ab8..48731cc 100644
--- a/src/ast/module.cc
+++ b/src/ast/module.cc
@@ -74,9 +74,6 @@
 
   out << "Module{" << std::endl;
   const auto indent = 2;
-  for (const auto& var : global_variables_) {
-    var->to_str(out, indent);
-  }
   for (auto* const alias : alias_types_) {
     for (size_t i = 0; i < indent; ++i) {
       out << " ";
@@ -86,6 +83,9 @@
       alias->type()->AsStruct()->impl()->to_str(out, indent);
     }
   }
+  for (const auto& var : global_variables_) {
+    var->to_str(out, indent);
+  }
   for (const auto& func : functions_) {
     func->to_str(out, indent);
   }
diff --git a/src/reader/spirv/function_memory_test.cc b/src/reader/spirv/function_memory_test.cc
index 267ae07..6c6b871 100644
--- a/src/reader/spirv/function_memory_test.cc
+++ b/src/reader/spirv/function_memory_test.cc
@@ -799,17 +799,17 @@
       << assembly << p->error();
   const auto module_str = p->module().to_str();
   EXPECT_THAT(module_str, HasSubstr(R"(
-  Variable{
-    myvar
-    storage_buffer
-    __alias_S__struct_S
-  }
   RTArr -> __array__u32_stride_4
   S -> __struct_S
   Struct{
     [[block]]
     StructMember{[[ offset 0 ]] field0: __u32}
     StructMember{[[ offset 4 ]] field1: __alias_RTArr__array__u32_stride_4}
+  }
+  Variable{
+    myvar
+    storage_buffer
+    __alias_S__struct_S
   })"));
 }
 
diff --git a/src/reader/spirv/parser_impl_module_var_test.cc b/src/reader/spirv/parser_impl_module_var_test.cc
index 06a81c8..6831cd8 100644
--- a/src/reader/spirv/parser_impl_module_var_test.cc
+++ b/src/reader/spirv/parser_impl_module_var_test.cc
@@ -1305,11 +1305,6 @@
   EXPECT_TRUE(p->error().empty());
   const auto module_str = p->module().to_str();
   EXPECT_THAT(module_str, HasSubstr(R"(
-  Variable{
-    myvar
-    storage_buffer
-    __alias_S__struct_S
-  }
   S -> __struct_S
   Struct{
     [[block]]
@@ -1317,6 +1312,11 @@
     StructMember{field1: __f32}
     StructMember{field2: __array__u32_2}
   }
+  Variable{
+    myvar
+    storage_buffer
+    __alias_S__struct_S
+  }
 })")) << module_str;
 }
 
@@ -1333,11 +1333,6 @@
   EXPECT_TRUE(p->error().empty());
   const auto module_str = p->module().to_str();
   EXPECT_THAT(module_str, HasSubstr(R"(
-  Variable{
-    myvar
-    storage_buffer
-    __alias_S__struct_S
-  }
   S -> __struct_S
   Struct{
     [[block]]
@@ -1345,6 +1340,11 @@
     StructMember{field1: __f32}
     StructMember{field2: __array__u32_2}
   }
+  Variable{
+    myvar
+    storage_buffer
+    __alias_S__struct_S
+  }
 })")) << module_str;
 }
 
@@ -1365,16 +1365,16 @@
   EXPECT_TRUE(p->error().empty());
   const auto module_str = p->module().to_str();
   EXPECT_THAT(module_str, HasSubstr(R"(
-  Variable{
-    myvar
-    storage_buffer
-    __alias_S__struct_S
-  }
   S -> __struct_S
   Struct{
     [[block]]
     StructMember{field0: __mat_2_3__f32}
   }
+  Variable{
+    myvar
+    storage_buffer
+    __alias_S__struct_S
+  }
 })")) << module_str;
 }
 
@@ -1395,16 +1395,16 @@
   EXPECT_TRUE(p->error().empty());
   const auto module_str = p->module().to_str();
   EXPECT_THAT(module_str, HasSubstr(R"(
-  Variable{
-    myvar
-    storage_buffer
-    __alias_S__struct_S
-  }
   S -> __struct_S
   Struct{
     [[block]]
     StructMember{field0: __mat_2_3__f32}
   }
+  Variable{
+    myvar
+    storage_buffer
+    __alias_S__struct_S
+  }
 })")) << module_str;
 }
 
diff --git a/src/transform/vertex_pulling_transform_test.cc b/src/transform/vertex_pulling_transform_test.cc
index cc44466..73fdaad 100644
--- a/src/transform/vertex_pulling_transform_test.cc
+++ b/src/transform/vertex_pulling_transform_test.cc
@@ -136,6 +136,11 @@
   EXPECT_TRUE(transform()->Run());
 
   EXPECT_EQ(R"(Module{
+  TintVertexData -> __struct_TintVertexData
+  Struct{
+    [[block]]
+    StructMember{[[ offset 0 ]] _tint_vertex_data: __array__u32_stride_4}
+  }
   Variable{
     var_a
     private
@@ -158,11 +163,6 @@
     storage_buffer
     __alias_TintVertexData__struct_TintVertexData
   }
-  TintVertexData -> __struct_TintVertexData
-  Struct{
-    [[block]]
-    StructMember{[[ offset 0 ]] _tint_vertex_data: __array__u32_stride_4}
-  }
   Function main -> __void
   StageDecoration{vertex}
   ()
@@ -222,6 +222,11 @@
   EXPECT_TRUE(transform()->Run());
 
   EXPECT_EQ(R"(Module{
+  TintVertexData -> __struct_TintVertexData
+  Struct{
+    [[block]]
+    StructMember{[[ offset 0 ]] _tint_vertex_data: __array__u32_stride_4}
+  }
   Variable{
     var_a
     private
@@ -244,11 +249,6 @@
     storage_buffer
     __alias_TintVertexData__struct_TintVertexData
   }
-  TintVertexData -> __struct_TintVertexData
-  Struct{
-    [[block]]
-    StructMember{[[ offset 0 ]] _tint_vertex_data: __array__u32_stride_4}
-  }
   Function main -> __void
   StageDecoration{vertex}
   ()
@@ -308,6 +308,11 @@
   EXPECT_TRUE(transform()->Run());
 
   EXPECT_EQ(R"(Module{
+  TintVertexData -> __struct_TintVertexData
+  Struct{
+    [[block]]
+    StructMember{[[ offset 0 ]] _tint_vertex_data: __array__u32_stride_4}
+  }
   Variable{
     var_a
     private
@@ -330,11 +335,6 @@
     storage_buffer
     __alias_TintVertexData__struct_TintVertexData
   }
-  TintVertexData -> __struct_TintVertexData
-  Struct{
-    [[block]]
-    StructMember{[[ offset 0 ]] _tint_vertex_data: __array__u32_stride_4}
-  }
   Function main -> __void
   StageDecoration{vertex}
   ()
@@ -424,6 +424,11 @@
   EXPECT_TRUE(transform()->Run());
 
   EXPECT_EQ(R"(Module{
+  TintVertexData -> __struct_TintVertexData
+  Struct{
+    [[block]]
+    StructMember{[[ offset 0 ]] _tint_vertex_data: __array__u32_stride_4}
+  }
   Variable{
     var_a
     private
@@ -468,11 +473,6 @@
     storage_buffer
     __alias_TintVertexData__struct_TintVertexData
   }
-  TintVertexData -> __struct_TintVertexData
-  Struct{
-    [[block]]
-    StructMember{[[ offset 0 ]] _tint_vertex_data: __array__u32_stride_4}
-  }
   Function main -> __void
   StageDecoration{vertex}
   ()
@@ -565,6 +565,11 @@
   EXPECT_TRUE(transform()->Run());
 
   EXPECT_EQ(R"(Module{
+  TintVertexData -> __struct_TintVertexData
+  Struct{
+    [[block]]
+    StructMember{[[ offset 0 ]] _tint_vertex_data: __array__u32_stride_4}
+  }
   Variable{
     var_a
     private
@@ -592,11 +597,6 @@
     storage_buffer
     __alias_TintVertexData__struct_TintVertexData
   }
-  TintVertexData -> __struct_TintVertexData
-  Struct{
-    [[block]]
-    StructMember{[[ offset 0 ]] _tint_vertex_data: __array__u32_stride_4}
-  }
   Function main -> __void
   StageDecoration{vertex}
   ()
@@ -751,6 +751,11 @@
   EXPECT_TRUE(transform()->Run());
 
   EXPECT_EQ(R"(Module{
+  TintVertexData -> __struct_TintVertexData
+  Struct{
+    [[block]]
+    StructMember{[[ offset 0 ]] _tint_vertex_data: __array__u32_stride_4}
+  }
   Variable{
     var_a
     private
@@ -801,11 +806,6 @@
     storage_buffer
     __alias_TintVertexData__struct_TintVertexData
   }
-  TintVertexData -> __struct_TintVertexData
-  Struct{
-    [[block]]
-    StructMember{[[ offset 0 ]] _tint_vertex_data: __array__u32_stride_4}
-  }
   Function main -> __void
   StageDecoration{vertex}
   ()
