-- in.cue --
#TopLevel: [name=string]: {
	path:    string
	content: string
}

#Mid: #TopLevel & {
	myoutput: path: "/output"
}

val: #Mid & {} & {myoutput: {content: "foo"}} // Should work.
-- out/eval/stats --
Leaks:  0
Freed:  10
Reused: 6
Allocs: 4
Retain: 0

Unifications: 10
Conjuncts:    23
Disjuncts:    10
-- out/evalalpha --
(struct){
  #TopLevel: (#struct){
  }
  #Mid: (#struct){
    myoutput: (#struct){
      path: (string){ "/output" }
      content: (string){ string }
    }
  }
  val: (#struct){
    myoutput: (#struct){
      content: (string){ "foo" }
      path: (string){ "/output" }
    }
  }
}
-- diff/-out/evalalpha<==>+out/eval --
diff old new
--- old
+++ new
@@ -9,8 +9,8 @@
   }
   val: (#struct){
     myoutput: (#struct){
-      path: (string){ "/output" }
       content: (string){ "foo" }
+      path: (string){ "/output" }
     }
   }
 }
-- diff/todo/p3 --
Reordering
-- out/eval --
(struct){
  #TopLevel: (#struct){
  }
  #Mid: (#struct){
    myoutput: (#struct){
      path: (string){ "/output" }
      content: (string){ string }
    }
  }
  val: (#struct){
    myoutput: (#struct){
      path: (string){ "/output" }
      content: (string){ "foo" }
    }
  }
}
-- out/compile --
--- in.cue
{
  #TopLevel: {
    [string]: {
      path: string
      content: string
    }
  }
  #Mid: (〈0;#TopLevel〉 & {
    myoutput: {
      path: "/output"
    }
  })
  val: ((〈0;#Mid〉 & {}) & {
    myoutput: {
      content: "foo"
    }
  })
}
