raw: true
#inlinetest:exclude skip — tests export format, not evaluator semantics
-- in.cue --
{
	#emb: {
		a: 1

		sub: {
			f: 3
		}
	}
	#def: {
		#emb

		b: 2
	}
	#f: a: 10
	#e: {
		#f

		b: int
		{[_]: <100}
		{[_]: <300}
	}
}
-- out/eval/stats --
Leaks:  0
Freed:  15
Reused: 6
Allocs: 9
Retain: 0

Unifications: 15
Conjuncts:    26
Disjuncts:    0

NumCloseIDs: 9
-- out/evalalpha --
(struct){
  #emb: (#struct){
    a: (int){ 1 }
    sub: (#struct){
      f: (int){ 3 }
    }
  }
  #def: (#struct){
    b: (int){ 2 }
    a: (int){ 1 }
    sub: (#struct){
      f: (int){ 3 }
    }
  }
  #f: (#struct){
    a: (int){ 10 }
  }
  #e: (#struct){
    b: (int){ &(<100, int) }
    a: (int){ 10 }
  }
}
-- diff/-out/evalalpha<==>+out/eval --
diff old new
--- old
+++ new
@@ -6,17 +6,17 @@
     }
   }
   #def: (#struct){
-    a: (int){ 1 }
-    sub: (#struct){
-      f: (int){ 3 }
-    }
     b: (int){ 2 }
+    a: (int){ 1 }
+    sub: (#struct){
+      f: (int){ 3 }
+    }
   }
   #f: (#struct){
     a: (int){ 10 }
   }
   #e: (#struct){
-    a: (int){ 10 }
     b: (int){ &(<100, int) }
+    a: (int){ 10 }
   }
 }
-- diff/todo/p3 --
Reordering
-- out/eval --
(struct){
  #emb: (#struct){
    a: (int){ 1 }
    sub: (#struct){
      f: (int){ 3 }
    }
  }
  #def: (#struct){
    a: (int){ 1 }
    sub: (#struct){
      f: (int){ 3 }
    }
    b: (int){ 2 }
  }
  #f: (#struct){
    a: (int){ 10 }
  }
  #e: (#struct){
    a: (int){ 10 }
    b: (int){ &(<100, int) }
  }
}
