#evalFull
-- in.cue --
#Task: {
	{
		op:          "pull"
		tag:         *"latest" | string
		refToTag:    tag
		tagExpr:     tag + "dd"
		tagInString: "\(tag)"
	} | {
		op: "scratch"
	}
}

foo: #Task & {"op": "pull"}
-- out/def --
#Task: {
	op:          "pull"
	tag:         *"latest" | string
	refToTag:    tag
	tagExpr:     "latestdd"
	tagInString: "latest"
} | {
	op: "scratch"
}
foo: #Task & {
	op: "pull"
}
-- out/export --
foo: {
	op:          "pull"
	tag:         "latest"
	refToTag:    "latest"
	tagExpr:     "latestdd"
	tagInString: "latest"
}
-- out/yaml --
foo:
  op: pull
  tag: latest
  refToTag: latest
  tagExpr: latestdd
  tagInString: latest
-- out/json --
{"foo":{"op":"pull","tag":"latest","refToTag":"latest","tagExpr":"latestdd","tagInString":"latest"}}
-- out/legacy-debug --
<0>{#Task: (<1>C{op: "pull", tag: (*"latest" | string), refToTag: <1>.tag, tagExpr: (<1>.tag + "dd"), tagInString: ""+<1>.tag+""} | <2>C{op: "scratch"}), foo: <3>C{op: "pull", tag: "latest", refToTag: "latest", tagExpr: "latestdd", tagInString: "latest"}}
-- out/compile --
--- in.cue
{
  #Task: {
    ({
      op: "pull"
      tag: (*"latest"|string)
      refToTag: 〈0;tag〉
      tagExpr: (〈0;tag〉 + "dd")
      tagInString: "\(〈0;tag〉)"
    }|{
      op: "scratch"
    })
  }
  foo: (〈0;#Task〉 & {
    op: "pull"
  })
}
-- out/eval/stats --
Leaks:  0
Freed:  27
Reused: 21
Allocs: 6
Retain: 0

Unifications: 15
Conjuncts:    35
Disjuncts:    27
-- out/eval --
(struct){
  #Task: (#struct){ |((#struct){
      op: (string){ "pull" }
      tag: (string){ |(*(string){ "latest" }, (string){ string }) }
      refToTag: (string){ |(*(string){ "latest" }, (string){ string }) }
      tagExpr: (string){ "latestdd" }
      tagInString: (string){ "latest" }
    }, (#struct){
      op: (string){ "scratch" }
    }) }
  foo: (#struct){
    op: (string){ "pull" }
    tag: (string){ |(*(string){ "latest" }, (string){ string }) }
    refToTag: (string){ |(*(string){ "latest" }, (string){ string }) }
    tagExpr: (string){ "latestdd" }
    tagInString: (string){ "latest" }
  }
}
