-- test.cue --
A: close({
	a: 1
	b: 2
})

B: A & {
	c: 3
}
-- out/eval/stats --
Leaks:  2
Freed:  8
Reused: 5
Allocs: 5
Retain: 2

Unifications: 10
Conjuncts:    14
Disjuncts:    10
-- out/evalalpha --
Errors:
B.c: field not allowed:
    ./test.cue:7:2

Result:
(_|_){
  // [eval]
  A: (#struct){
    a: (int){ 1 }
    b: (int){ 2 }
  }
  B: (_|_){
    // [eval]
    c: (_|_){
      // [eval] B.c: field not allowed:
      //     ./test.cue:7:2
    }
    a: (int){ 1 }
    b: (int){ 2 }
  }
}
-- diff/-out/evalalpha<==>+out/eval --
diff old new
--- old
+++ new
@@ -1,7 +1,5 @@
 Errors:
 B.c: field not allowed:
-    ./test.cue:1:10
-    ./test.cue:6:4
     ./test.cue:7:2
 
 Result:
@@ -13,13 +11,11 @@
   }
   B: (_|_){
     // [eval]
-    a: (int){ 1 }
-    b: (int){ 2 }
     c: (_|_){
       // [eval] B.c: field not allowed:
-      //     ./test.cue:1:10
-      //     ./test.cue:6:4
       //     ./test.cue:7:2
     }
+    a: (int){ 1 }
+    b: (int){ 2 }
   }
 }
-- diff/todo/p2 --
positions
-- diff/todo/p3 --
Reordering
-- out/eval --
Errors:
B.c: field not allowed:
    ./test.cue:1:10
    ./test.cue:6:4
    ./test.cue:7:2

Result:
(_|_){
  // [eval]
  A: (#struct){
    a: (int){ 1 }
    b: (int){ 2 }
  }
  B: (_|_){
    // [eval]
    a: (int){ 1 }
    b: (int){ 2 }
    c: (_|_){
      // [eval] B.c: field not allowed:
      //     ./test.cue:1:10
      //     ./test.cue:6:4
      //     ./test.cue:7:2
    }
  }
}
-- out/compile --
--- test.cue
{
  A: close({
    a: 1
    b: 2
  })
  B: (〈0;A〉 & {
    c: 3
  })
}
