-- in.cue --
a: {
	#A
}

a: c: 1

#A: b: 1

b: {
	#A
    leaf: "leaf value"
    interpolation: "more \(leaf_ref)"
    leaf_ref: leaf
}
-- out/eval/stats --
Leaks:  0
Freed:  11
Reused: 7
Allocs: 4
Retain: 2

Unifications: 11
Conjuncts:    17
Disjuncts:    13
-- out/evalalpha --
Errors:
a.c: field not allowed:
    ./in.cue:5:4

Result:
(_|_){
  // [eval]
  a: (_|_){
    // [eval]
    c: (_|_){
      // [eval] a.c: field not allowed:
      //     ./in.cue:5:4
    }
    b: (int){ 1 }
  }
  #A: (#struct){
    b: (int){ 1 }
  }
  b: (#struct){
    leaf: (string){ "leaf value" }
    interpolation: (string){ "more leaf value" }
    leaf_ref: (string){ "leaf value" }
    b: (int){ 1 }
  }
}
-- diff/-out/evalalpha<==>+out/eval --
diff old new
--- old
+++ new
@@ -1,9 +1,6 @@
 Errors:
 a.c: field not allowed:
-    ./in.cue:1:4
-    ./in.cue:2:2
     ./in.cue:5:4
-    ./in.cue:7:5
 
 Result:
 (_|_){
@@ -10,22 +7,19 @@
   // [eval]
   a: (_|_){
     // [eval]
-    b: (int){ 1 }
     c: (_|_){
       // [eval] a.c: field not allowed:
-      //     ./in.cue:1:4
-      //     ./in.cue:2:2
       //     ./in.cue:5:4
-      //     ./in.cue:7:5
     }
+    b: (int){ 1 }
   }
   #A: (#struct){
     b: (int){ 1 }
   }
   b: (#struct){
-    b: (int){ 1 }
     leaf: (string){ "leaf value" }
     interpolation: (string){ "more leaf value" }
     leaf_ref: (string){ "leaf value" }
+    b: (int){ 1 }
   }
 }
-- diff/todo/p2 --
Missing positions / reordering.
-- out/eval --
Errors:
a.c: field not allowed:
    ./in.cue:1:4
    ./in.cue:2:2
    ./in.cue:5:4
    ./in.cue:7:5

Result:
(_|_){
  // [eval]
  a: (_|_){
    // [eval]
    b: (int){ 1 }
    c: (_|_){
      // [eval] a.c: field not allowed:
      //     ./in.cue:1:4
      //     ./in.cue:2:2
      //     ./in.cue:5:4
      //     ./in.cue:7:5
    }
  }
  #A: (#struct){
    b: (int){ 1 }
  }
  b: (#struct){
    b: (int){ 1 }
    leaf: (string){ "leaf value" }
    interpolation: (string){ "more leaf value" }
    leaf_ref: (string){ "leaf value" }
  }
}
-- out/compile --
--- in.cue
{
  a: {
    〈1;#A〉
  }
  a: {
    c: 1
  }
  #A: {
    b: 1
  }
  b: {
    〈1;#A〉
    leaf: "leaf value"
    interpolation: "more \(〈0;leaf_ref〉)"
    leaf_ref: 〈0;leaf〉
  }
}
