diff --git a/cmd/cue/cmd/fix_test.go b/cmd/cue/cmd/fix_test.go
index 198c844..26c0cb2 100644
--- a/cmd/cue/cmd/fix_test.go
+++ b/cmd/cue/cmd/fix_test.go
@@ -54,6 +54,14 @@
 	ref:     X1 & x
 }
 `,
+	}, {
+		in: `
+		y: [1, 2, 3, 4]
+		a: [ x for x in y ]
+		`,
+		out: `y: [1, 2, 3, 4]
+a: [ for x in y { x } ]
+`,
 		// 	}, {
 		// 		name: "slice",
 		// 		in: `package foo
diff --git a/cmd/cue/cmd/testdata/script/legacy.txt b/cmd/cue/cmd/testdata/script/legacy.txt
index 8cb4a6e..8fee102 100644
--- a/cmd/cue/cmd/testdata/script/legacy.txt
+++ b/cmd/cue/cmd/testdata/script/legacy.txt
@@ -1,14 +1,16 @@
-! cue eval foo.cue
+cue eval foo.cue
 cmp stderr expect-stderr
 
-! cue export foo.cue
+cue export foo.cue
 cmp stderr expect-stderr
 
-! cue fmt foo.cue
-cmp stderr expect-stderr
+cue fmt foo.cue
+cmp foo.cue bar.cue
 
 -- expect-stderr --
-missing ',' in struct literal:
-    ./foo.cue:1:8
 -- foo.cue --
-"x": 3 for x in a
+a: [1]
+b: [ x for x in a ]
+-- bar.cue --
+a: [1]
+b: [ for x in a { x } ]
diff --git a/cue/ast.go b/cue/ast.go
index fa1331c..04058b2 100644
--- a/cue/ast.go
+++ b/cue/ast.go
@@ -301,10 +301,39 @@
 			parent:   v,
 		}
 
+		if len(n.Elts) == 1 {
+			if c, ok := n.Elts[0].(*ast.Comprehension); ok {
+				yielder := &yield{baseValue: newExpr(c.Value)}
+				lc := &listComprehension{
+					newExpr(c),
+					wrapClauses(v, yielder, c.Clauses),
+				}
+				// we don't support key for lists (yet?)
+
+				// TODO(hack): unwrap struct lit if embedding of one element.
+				// We do this as we do not yet support embedding of scalar
+				// values in general. This prohibits:
+				// - having fields alongside embedded values
+				// - having more than one embedded value.
+				// The latter would not be too hard to circumvent.
+				expr := c.Value
+				if s, ok := expr.(*ast.StructLit); ok && len(s.Elts) == 1 {
+					if e, ok := s.Elts[0].(*ast.EmbedDecl); ok {
+						expr = e.Expr
+					}
+				}
+				yielder.value = v.walk(expr)
+				return lc
+			}
+		}
+
 		elts, ellipsis := internal.ListEllipsis(n)
 
 		arcs := []arc{}
 		for i, e := range elts {
+			if _, ok := e.(*ast.Comprehension); ok {
+				return v.errf(e, "comprehensions must be a single element within list (for now)")
+			}
 			elem := v1.walk(e)
 			if elem == nil {
 				// TODO: it would be consistent to allow aliasing in lists
diff --git a/cue/ast/ast.go b/cue/ast/ast.go
index 3238a99..b33204d 100644
--- a/cue/ast/ast.go
+++ b/cue/ast/ast.go
@@ -347,10 +347,11 @@
 // A Comprehension node represents a comprehension declaration.
 type Comprehension struct {
 	Clauses []Clause // There must be at least one clause.
-	Value   Expr     // Must be a struct
+	Value   Expr     // Must be a struct TODO: change to Struct
 
 	comments
 	decl
+	expr // TODO: only allow Comprehension in "Embedding" productions.
 }
 
 func (x *Comprehension) Pos() token.Pos  { return getPos(x) }
@@ -551,6 +552,8 @@
 // A ListLit node represents a literal list.
 type ListLit struct {
 	Lbrack token.Pos // position of "["
+
+	// TODO: change to embedding or similar.
 	Elts   []Expr    // list of composite elements; or nil
 	Rbrack token.Pos // position of "]"
 
diff --git a/cue/ast_test.go b/cue/ast_test.go
index 3cc17bd..cb2e519 100644
--- a/cue/ast_test.go
+++ b/cue/ast_test.go
@@ -313,7 +313,7 @@
 		out: `<0>{a: <1>{ <2>for k, v in <0>.b yield <3>{""+<2>.v+"": <2>.v}}, b: <4>{a: "aa", b: "bb", c: "cc"}}`,
 	}, {
 		in: `
-			a: [ v for _, v in b ]
+			a: [ for _, v in b { v } ]
 			b: { a: 1, b: 2, c: 3 }
 			`,
 		out: `<0>{a: [ <1>for _, v in <0>.b yield <1>.v ], b: <2>{a: 1, b: 2, c: 3}}`,
diff --git a/cue/export_test.go b/cue/export_test.go
index 6967acb..88c5b62 100644
--- a/cue/export_test.go
+++ b/cue/export_test.go
@@ -251,11 +251,11 @@
 			}`),
 	}, {
 		raw: true,
-		in:  `{ a: [1, 2], b: [ v for k, v in a ] }`,
+		in:  `{ a: [1, 2], b: [ for k, v in a { v }] }`,
 		out: unindent(`
 			{
 				a: [1, 2]
-				b: [ v for k, v in a ]
+				b: [ for k, v in a { v } ]
 			}`),
 	}, {
 		raw: true,
diff --git a/cue/format/node.go b/cue/format/node.go
index d306d70..ba6797d 100644
--- a/cue/format/node.go
+++ b/cue/format/node.go
@@ -184,7 +184,36 @@
 	f.after(nil)
 }
 
-func (f *formatter) walkExprList(list []ast.Expr, depth int) {
+func (f *formatter) walkListElems(list []ast.Expr) {
+	f.before(nil)
+	for _, x := range list {
+		f.before(x)
+		switch n := x.(type) {
+		case *ast.Comprehension:
+			f.walkClauseList(n.Clauses, blank)
+			f.print(blank, nooverride)
+			f.expr(n.Value)
+
+		case *ast.Ellipsis:
+			f.ellipsis(n)
+
+		case *ast.Alias:
+			f.expr(n.Ident)
+			f.print(n.Equal, token.BIND)
+			f.expr(n.Expr)
+
+			// TODO: ast.CommentGroup: allows comment groups in ListLits.
+
+		case ast.Expr:
+			f.exprRaw(n, token.LowestPrec, 1)
+		}
+		f.print(comma, blank)
+		f.after(x)
+	}
+	f.after(nil)
+}
+
+func (f *formatter) walkArgsList(list []ast.Expr, depth int) {
 	f.before(nil)
 	for _, x := range list {
 		f.before(x)
@@ -235,7 +264,6 @@
 }
 
 func (f *formatter) decl(decl ast.Decl) {
-
 	if decl == nil {
 		return
 	}
@@ -307,14 +335,6 @@
 			f.print(formfeed)
 		}
 
-	case *ast.Comprehension:
-		if !n.Pos().HasRelPos() || n.Pos().RelPos() >= token.Newline {
-			f.print(formfeed)
-		}
-		f.walkClauseList(n.Clauses, blank)
-		f.print(blank, nooverride)
-		f.expr(n.Value)
-
 	case *ast.BadDecl:
 		f.print(n.From, "*bad decl*", declcomma)
 
@@ -350,6 +370,29 @@
 		f.expr(n.Expr)
 		f.print(newline, noblank)
 
+	case *ast.Attribute:
+		f.print(n.At, n)
+
+	case *ast.CommentGroup:
+		f.print(newsection)
+		f.printComment(n)
+		f.print(newsection)
+
+	case ast.Expr:
+		f.embedding(n)
+	}
+}
+
+func (f *formatter) embedding(decl ast.Expr) {
+	switch n := decl.(type) {
+	case *ast.Comprehension:
+		if !n.Pos().HasRelPos() || n.Pos().RelPos() >= token.Newline {
+			f.print(formfeed)
+		}
+		f.walkClauseList(n.Clauses, blank)
+		f.print(blank, nooverride)
+		f.expr(n.Value)
+
 	case *ast.Ellipsis:
 		f.ellipsis(n)
 
@@ -362,13 +405,10 @@
 		f.expr(n.Expr)
 		f.print(declcomma) // implied
 
-	case *ast.Attribute:
-		f.print(n.At, n)
+		// TODO: ast.CommentGroup: allows comment groups in ListLits.
 
-	case *ast.CommentGroup:
-		f.print(newsection)
-		f.printComment(n)
-		f.print(newsection)
+	case ast.Expr:
+		f.exprRaw(n, token.LowestPrec, 1)
 	}
 }
 
@@ -570,7 +610,7 @@
 		}
 		wasIndented := f.possibleSelectorExpr(x.Fun, token.HighestPrec, depth)
 		f.print(x.Lparen, token.LPAREN)
-		f.walkExprList(x.Args, depth)
+		f.walkArgsList(x.Args, depth)
 		f.print(trailcomma, noblank, x.Rparen, token.RPAREN)
 		if wasIndented {
 			f.print(unindent)
@@ -612,7 +652,7 @@
 
 	case *ast.ListLit:
 		f.print(x.Lbrack, token.LBRACK, indent)
-		f.walkExprList(x.Elts, 1)
+		f.walkListElems(x.Elts)
 		f.print(trailcomma, noblank)
 		f.visitComments(f.current.pos)
 		f.matchUnindent()
@@ -623,9 +663,16 @@
 
 	case *ast.ListComprehension:
 		f.print(x.Lbrack, token.LBRACK, blank, indent)
-		f.expr(x.Expr)
 		f.print(blank)
 		f.walkClauseList(x.Clauses, blank)
+		f.print(blank, nooverride)
+		if _, ok := x.Expr.(*ast.StructLit); ok {
+			f.expr(x.Expr)
+		} else {
+			f.print(token.LBRACE, blank)
+			f.expr(x.Expr)
+			f.print(blank, token.RBRACE)
+		}
 		f.print(unindent, f.wsOverride(blank), x.Rbrack, token.RBRACK)
 
 	default:
diff --git a/cue/format/testdata/expressions.golden b/cue/format/testdata/expressions.golden
index 0dbc658..019abde 100644
--- a/cue/format/testdata/expressions.golden
+++ b/cue/format/testdata/expressions.golden
@@ -14,7 +14,7 @@
 	alias = 3.14
 	"g\("en")"?: 4
 
-	alias2 = foo
+	alias2 = foo // with comment
 	aaalias = foo
 	b: bar
 
@@ -140,13 +140,16 @@
 	e: [...int]
 	e: [...int]
 	e: [...int | float]
-	e: [ x for x in someObject if x > 9 ]
-	e: [ x
+	e: [ for x in someObject if x > 9 {
+		x
+	}]
+	e: [ for x in someObject if x > 9 { x } ]
+	e: [
 		for x in someObject
-		if x > 9 ]
-	e: [ x
+		if x > 9 { x } ]
+	e: [
 		for x in someObject
-		if x > 9
+		if x > 9 { x }
 	]
 	for k, v in someObject {
 		"\(k)": v
diff --git a/cue/format/testdata/expressions.input b/cue/format/testdata/expressions.input
index 8b19de6..d153771 100644
--- a/cue/format/testdata/expressions.input
+++ b/cue/format/testdata/expressions.input
@@ -14,7 +14,7 @@
     alias = 3.14
     "g\("en")"?: 4
 
-    alias2 = foo
+    alias2 = foo // with comment
     aaalias = foo
     b: bar
 
@@ -138,6 +138,9 @@
     e: [...int]
     e: [...int,]
     e: [...int | float]
+    e: [ for x in someObject if x > 9 {
+        x
+    }]
     e: [ x for x in someObject if x > 9 ]
     e: [ x
     for x in someObject
@@ -159,11 +162,11 @@
             "\(k)":v
         }
     }
-
+    
     e: { for k, v in someObject if k > "a" {"\(k)":v} }
     e: { for k, v in someObject if k > "a" {
         "\(k)":v }}
-    
+
     e: {
     for k, v in someObject
     if k > "a" {
diff --git a/cue/parser/parser.go b/cue/parser/parser.go
index eb3a06a..d9ea14c 100644
--- a/cue/parser/parser.go
+++ b/cue/parser/parser.go
@@ -368,6 +368,8 @@
 	}
 }
 
+// assertV0 indicates the last version at which a certain feature was
+// supported.
 func (p *parser) assertV0(pos token.Pos, minor, patch int, name string) {
 	v := version0(minor, patch)
 	if p.version != 0 && p.version > v {
@@ -539,6 +541,16 @@
 	return ident
 }
 
+func (p *parser) parseKeyIdent() *ast.Ident {
+	c := p.openComments()
+	pos := p.pos
+	name := p.lit
+	p.next()
+	ident := &ast.Ident{NamePos: pos, Name: name}
+	c.closeNode(p, ident)
+	return ident
+}
+
 // ----------------------------------------------------------------------------
 // Expressions
 
@@ -589,6 +601,11 @@
 			Lparen: lparen,
 			X:      x,
 			Rparen: rparen}
+
+	default:
+		if p.tok.IsKeyword() {
+			return p.parseKeyIdent()
+		}
 	}
 
 	// we have an error
@@ -681,7 +698,7 @@
 
 	for p.tok != token.RBRACE && p.tok != token.ELLIPSIS && p.tok != token.EOF {
 		switch p.tok {
-		case token.FOR, token.IF, token.LET:
+		case token.FOR, token.IF:
 			list = append(list, p.parseComprehension())
 
 		case token.ATTRIBUTE:
@@ -726,33 +743,42 @@
 		opt := token.NoPos
 		tok = p.tok
 		pos = p.pos
-		if p.tok == token.OPTION {
+		switch p.tok {
+		case token.COMMA, token.EOF:
+			decl = &ast.EmbedDecl{Expr: lab}
+
+		case token.OPTION:
 			opt = pos
 			p.next()
 			tok = p.tok
 			pos = p.pos
-		}
-		p.next()
-		rhs := p.parseRHS()
 
-		// Field or alias.
-		switch tok {
-		case token.BIND:
-			decl = &ast.Alias{Ident: lab, Equal: pos, Expr: rhs}
-		case token.ISA, token.COLON:
-			decl = &ast.Field{
-				Label:    lab,
-				Optional: opt,
-				TokenPos: pos,
-				Token:    tok,
-				Value:    rhs,
-				Attrs:    p.parseAttributes(),
-			}
+			fallthrough
+
 		default:
-			decl = &ast.BadDecl{From: lab.Pos(), To: rhs.End()}
+			p.next()
+			rhs := p.parseRHS()
+
+			// Field or alias.
+			switch tok {
+			case token.BIND:
+				decl = &ast.Alias{Ident: lab, Equal: pos, Expr: rhs}
+			case token.ISA, token.COLON:
+				decl = &ast.Field{
+					Label:    lab,
+					Optional: opt,
+					TokenPos: pos,
+					Token:    tok,
+					Value:    rhs,
+					Attrs:    p.parseAttributes(),
+				}
+			default:
+				decl = &ast.BadDecl{From: lab.Pos(), To: rhs.End()}
+			}
 		}
+
 		fc.closeNode(p, decl)
-		if p.atComma("struct literal", token.RBRACE) { // TODO: may be EOF
+		if p.atComma("struct literal", token.RBRACE, token.EOF) {
 			p.next()
 		}
 
@@ -833,14 +859,15 @@
 			p.expectComma() // sync parser.
 			fallthrough
 
-		case token.RBRACE:
+		case token.RBRACE, token.EOF:
 			if i == 0 {
 				if a, ok := expr.(*ast.Alias); ok {
 					return a
 				}
 				switch tok {
 				case token.IDENT, token.LBRACK, token.STRING, token.INTERPOLATION,
-					token.NULL, token.TRUE, token.FALSE:
+					token.NULL, token.TRUE, token.FALSE,
+					token.FOR, token.IF, token.LET, token.IN:
 					return &ast.EmbedDecl{Expr: expr}
 				}
 			}
@@ -940,7 +967,8 @@
 	tok := p.tok
 	switch tok {
 	case token.IDENT, token.STRING, token.INTERPOLATION,
-		token.NULL, token.TRUE, token.FALSE:
+		token.NULL, token.TRUE, token.FALSE,
+		token.FOR, token.IF, token.LET, token.IN:
 		expr = p.parseExpr()
 
 		switch x := expr.(type) {
@@ -983,29 +1011,6 @@
 			// Note: caller must verify this list is suitable as a label.
 			label, ok = x, true
 		}
-
-	case token.IF, token.FOR, token.IN, token.LET:
-		// Keywords representing clauses.
-		pos := p.pos
-		ident := &ast.Ident{
-			NamePos: pos,
-			Name:    p.lit,
-		}
-		c := p.openComments()
-		p.next()
-		expr = c.closeExpr(p, ident)
-
-		if p.tok != token.COLON && p.tok != token.ISA {
-			c = p.openComments()
-			p.errf(pos, "expected operand, found '%s'", ident.Name)
-			expr = &ast.BadExpr{From: pos, To: p.pos}
-			// Sync expression.
-			expr = p.parseBinaryExprTail(token.LowestPrec+1, expr)
-			expr = c.closeExpr(p, expr)
-			break
-		}
-		label = ident
-		ok = true
 	}
 	return label, expr, ok
 }
@@ -1056,7 +1061,8 @@
 			forPos := p.expect(token.FOR)
 			if first {
 				switch p.tok {
-				case token.COLON, token.ISA, token.BIND, token.OPTION:
+				case token.COLON, token.ISA, token.BIND, token.OPTION,
+					token.COMMA, token.EOF:
 					return nil, c
 				}
 			}
@@ -1085,7 +1091,8 @@
 			ifPos := p.expect(token.IF)
 			if first {
 				switch p.tok {
-				case token.COLON, token.ISA, token.BIND, token.OPTION:
+				case token.COLON, token.ISA, token.BIND, token.OPTION,
+					token.COMMA, token.EOF:
 					return nil, c
 				}
 			}
@@ -1095,7 +1102,12 @@
 				Condition: p.parseRHS(),
 			}))
 
+		// TODO:
 		// case token.LET:
+		// 	c := p.openComments()
+		// 	p.expect(token.LET)
+		// 	return nil, c
+
 		default:
 			return clauses, nil
 		}
@@ -1118,6 +1130,7 @@
 
 	if clauses, _ := p.parseComprehensionClauses(false); clauses != nil {
 		var expr ast.Expr
+		p.assertV0(p.pos, 1, 1, "old-style list comprehensions")
 		if len(elts) != 1 {
 			p.errf(lbrack.Add(1), "list comprehension must have exactly one element")
 		}
@@ -1170,6 +1183,12 @@
 		}
 	}
 
+	for _, v := range list {
+		if _, ok := v.(*ast.Comprehension); ok && len(list) != 1 {
+			p.errf(v.Pos(), "multiple comprehensions per list not yet supported")
+		}
+	}
+
 	return
 }
 
@@ -1180,7 +1199,37 @@
 	c := p.openComments()
 	defer func() { c.closeNode(p, expr) }()
 
-	expr = p.parseBinaryExprTail(token.LowestPrec+1, p.parseUnaryExpr())
+	switch p.tok {
+	case token.FOR, token.IF:
+		tok := p.tok
+		pos := p.pos
+		clauses, fc := p.parseComprehensionClauses(true)
+		if clauses != nil {
+			sc := p.openComments()
+			expr := p.parseStruct()
+			sc.closeExpr(p, expr)
+
+			if p.atComma("struct literal", token.RBRACK) { // TODO: may be EOF
+				p.next()
+			}
+
+			return &ast.Comprehension{
+				Clauses: clauses,
+				Value:   expr,
+			}, true
+		}
+
+		expr = &ast.Ident{
+			NamePos: pos,
+			Name:    tok.String(),
+		}
+		fc.closeNode(p, expr)
+
+	default:
+		expr = p.parseUnaryExpr()
+	}
+
+	expr = p.parseBinaryExprTail(token.LowestPrec+1, expr)
 	expr = p.parseAlias(expr)
 
 	// Enforce there is an explicit comma. We could also allow the
diff --git a/cue/parser/parser_test.go b/cue/parser/parser_test.go
index 92734f4..7e4f61b 100644
--- a/cue/parser/parser_test.go
+++ b/cue/parser/parser_test.go
@@ -34,7 +34,7 @@
 	}, {
 		"basic lits", `"a","b", 3,3.4,5,2_3`, `"a", "b", 3, 3.4, 5, 2_3`,
 	}, {
-		"keyword basic lits", `true,false,null`, `true, false, null`,
+		"keyword basic lits", `true,false,null,for,in,if,let`, `true, false, null, for, in, if, let`,
 	}, {
 		"keywords as labels",
 		`if: 0, for: 1, in: 2, where: 3, div: 4, quo: 5`,
@@ -239,9 +239,9 @@
 		"list comprehensions",
 		`{
 				y: [1,2,3]
-				b: [ x for x in y if x == 1 ],
+				b: [ for x in y if x == 1 { x } ],
 			}`,
-		`{y: [1, 2, 3], b: [x for x in y if x==1 ]}`,
+		`{y: [1, 2, 3], b: [for x in y if x==1 {x}]}`,
 	}, {
 		"field comprehensions",
 		`{
@@ -443,11 +443,11 @@
 			`X1=[X2=<"d"]: {name: X2}, ` +
 			`Y1=foo: {Y2=bar: [Y1, Y2]}`,
 	}, {
-		desc: "error when keyword is used in expression",
+		desc: "allow keyword in expression",
 		in: `
 		foo: in & 2
 		`,
-		out: "foo: <*ast.BadExpr>&2\nexpected operand, found 'in'",
+		out: "foo: in&2",
 	}, {
 		desc: "dot import",
 		in: `
diff --git a/cue/resolve_test.go b/cue/resolve_test.go
index 591b3c5..7126bf3 100644
--- a/cue/resolve_test.go
+++ b/cue/resolve_test.go
@@ -2248,22 +2248,21 @@
 	}, {
 		desc: "list comprehension",
 		in: `
-			// a: [ k for k: v in b if k < "d" if v > b.a ] // TODO test error using common iso colon
-			a: [ k for k, v in b if k < "d" if v > b.a ]
+			a: [ for k, v in b if k < "d" if v > b.a { k }]
 			b: {
 				a: 1
 				b: 2
 				c: 3
 				d: 4
 			}
-			c: [ x for _, x in b for _, y in b  if x < y ]
-			d: [ x for x, _ in a ]
+			c: [ for _, x in b for _, y in b  if x < y { x } ]
+			d: [ for x, _ in a { x } ]
 			`,
 		out: `<0>{a: ["b","c"], b: <1>{a: 1, b: 2, c: 3, d: 4}, c: [1,1,1,2,2,3], d: [0,1]}`,
 	}, {
 		desc: "struct comprehension with template",
 		in: `
-			result: [ v for _, v in service ]
+			result: [ for _, v in service { v } ]
 
 			service: [Name=string]: {
 				name: *Name | string
@@ -2336,7 +2335,7 @@
 	}, {
 		desc: "complex interaction of groundness",
 		in: `
-			res: [ y & { d: "b" } for x in a for y in x ]
+			res: [ for x in a for y in x { y & { d: "b" } }]
 			res: [ a.b.c & { d: "b" } ]
 
 			a: b: [C=string]: { d: string, s: "a" + d }
@@ -2584,7 +2583,7 @@
 				[jobID=string]: {
 				}
 			}
-			JobID :: or([ k for k, _ in jobs ])
+			JobID :: or([ for k, _ in jobs { k } ])
 		}
 
 		foo: Workflow & {
@@ -2867,7 +2866,7 @@
 		desc: "alias reuse in nested scope",
 		in: `
 		Foo :: {
-			X = or([ k for k, _ in {} ])
+			X = or([ for k, _ in {} { k } ])
 			connection: [X]: X
 		}
 		A :: {
diff --git a/cue/types_test.go b/cue/types_test.go
index 1c90aec..2320bc4 100644
--- a/cue/types_test.go
+++ b/cue/types_test.go
@@ -564,7 +564,7 @@
 		value: `>=5*[1,2,3, ...int]`,
 		err:   "incomplete",
 	}, {
-		value: `[x for x in y if x > 1]
+		value: `[for x in y if x > 1 { x }]
 		y :: [1,2,3]`,
 		res: "[2,3,]",
 	}, {
@@ -1191,7 +1191,7 @@
 		dst:   intList(),
 		want:  *intList(1, 2, 3),
 	}, {
-		value: `[x for x in y if x > 1]
+		value: `[for x in y if x > 1 { x }]
 				y :: [1,2,3]`,
 		dst:  intList(),
 		want: *intList(2, 3),
diff --git a/doc/tutorial/basics/6_expressions/40_listcomp.txt b/doc/tutorial/basics/6_expressions/40_listcomp.txt
index 88eb177..dbc5132 100644
--- a/doc/tutorial/basics/6_expressions/40_listcomp.txt
+++ b/doc/tutorial/basics/6_expressions/40_listcomp.txt
@@ -11,7 +11,7 @@
 The example shows the use of `for` loops and `if` guards.
 
 -- listcomp.cue --
-[ x*x for x in items if x rem 2 == 0]
+[ for x in items if x rem 2 == 0 { x*x } ]
 
 items :: [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
 
diff --git a/doc/tutorial/kubernetes/README.md b/doc/tutorial/kubernetes/README.md
index 19c86df..4c998e1 100644
--- a/doc/tutorial/kubernetes/README.md
+++ b/doc/tutorial/kubernetes/README.md
@@ -498,13 +498,15 @@
     service: "\(k)": {
         spec: selector: v.spec.template.metadata.labels
 
-        spec: ports: [ {
-            Port = p.containerPort // Port is an alias
-            port:       *Port | int
-            targetPort: *Port | int
-        } for c in v.spec.template.spec.containers
+        spec: ports: [
+            for c in v.spec.template.spec.containers
             for p in c.ports
-            if p._export ]
+            if p._export {
+                Port = p.containerPort // Port is an alias
+                port:       *Port | int
+                targetPort: *Port | int
+            }  
+        ]
     }
 }
 EOF
@@ -856,7 +858,7 @@
 $ cat <<EOF > kube_tool.cue
 package kube
 
-objects: [ x for v in objectSets for x in v ]
+objects: [ for v in objectSets for x in v { x } ]
 
 objectSets: [
 	service,
@@ -891,8 +893,9 @@
 command: ls: {
 	task: print: cli.Print & {
 		text: tabwriter.Write([
-			"\(x.kind)  \t\(x.metadata.labels.component)  \t\(x.metadata.name)"
-			for x in objects
+			for x in objects {
+				"\(x.kind)  \t\(x.metadata.labels.component)  \t\(x.metadata.name)"
+			}
 		])
 	}
 
@@ -1176,7 +1179,7 @@
 Arguments can be specified as a map.
 ```
     arg: [string]: string
-    args: [ "-\(k)=\(v)" for k, v in arg ] | [...string]
+    args: [ for k, v in arg { "-\(k)=\(v)" } ] | [...string]
 ```
 
 If order matters, users could explicitly specify the list as well.
@@ -1281,7 +1284,7 @@
             metadata: labels: x.label
             spec: selector:   x.label
 
-            spec: ports: [ p for p in x.port ]
+            spec: ports: [ for p in x.port { p } ]
         }
     }
 }
diff --git a/doc/tutorial/kubernetes/manual/services/cloud.cue b/doc/tutorial/kubernetes/manual/services/cloud.cue
index bf86197..e16bbff 100644
--- a/doc/tutorial/kubernetes/manual/services/cloud.cue
+++ b/doc/tutorial/kubernetes/manual/services/cloud.cue
@@ -26,7 +26,7 @@
 	port: [string]: int
 
 	arg: [string]: string
-	args: [ "-\(k)=\(v)" for k, v in arg ] | [...string]
+	args: [ for k, v in arg { "-\(k)=\(v)" } ] | [...string]
 
 	// Environment variables
 	env: [string]: string
diff --git a/doc/tutorial/kubernetes/manual/services/k8s.cue b/doc/tutorial/kubernetes/manual/services/k8s.cue
index cefab64..381e483 100644
--- a/doc/tutorial/kubernetes/manual/services/k8s.cue
+++ b/doc/tutorial/kubernetes/manual/services/k8s.cue
@@ -84,13 +84,13 @@
 			image: X.image
 			args:  X.args
 			if len(X.envSpec) > 0 {
-				env: [ {name: k} & v for k, v in X.envSpec ]
+				env: [ for k, v in X.envSpec {v, name: k} ]
 			}
 
-			ports: [ {
+			ports: [ for k, p in X.expose.port & X.port {
 				name:          k
 				containerPort: p
-			} for k, p in X.expose.port & X.port ]
+			} ]
 		}]
 	}
 
@@ -98,7 +98,11 @@
 	spec: template: spec: {
 		if len(X.volume) > 0 {
 			volumes: [
-					v.kubernetes & {name: v.name} for v in X.volume
+				for v in X.volume {
+					v.kubernetes
+
+					name: v.name
+				}
 			]
 		}
 
@@ -106,16 +110,17 @@
 			// TODO: using conversions this would look like:
 			// volumeMounts: [ k8s.VolumeMount(v) for v in d.volume ]
 			if len(X.volume) > 0 {
-				volumeMounts: [ {
-					name:      v.name
-					mountPath: v.mountPath
-					if v.subPath != null | true {
-						subPath: v.subPath
+				volumeMounts: [
+					for v in X.volume {
+						name:      v.name
+						mountPath: v.mountPath
+						if v.subPath != null | true {
+							subPath: v.subPath
+						}
+						if v.readOnly {
+							readOnly: v.readOnly
+						}
 					}
-					if v.readOnly {
-						readOnly: v.readOnly
-					}
-				} for v in X.volume
 				]
 			}
 		}]
diff --git a/doc/tutorial/kubernetes/manual/services/kube_tool.cue b/doc/tutorial/kubernetes/manual/services/kube_tool.cue
index b41cea0..0ca9d0f 100644
--- a/doc/tutorial/kubernetes/manual/services/kube_tool.cue
+++ b/doc/tutorial/kubernetes/manual/services/kube_tool.cue
@@ -1,6 +1,6 @@
 package kube
 
-objects: [ x for v in objectSets for x in v ]
+objects: [ for v in objectSets for x in v { x } ]
 
 objectSets: [
 	kubernetes.services,
diff --git a/doc/tutorial/kubernetes/manual/services/ls_tool.cue b/doc/tutorial/kubernetes/manual/services/ls_tool.cue
index d82e2af..d5739ba 100644
--- a/doc/tutorial/kubernetes/manual/services/ls_tool.cue
+++ b/doc/tutorial/kubernetes/manual/services/ls_tool.cue
@@ -6,8 +6,10 @@
 	task: print: {
 		kind: "print"
 		Lines = [
-			"\(x.kind)  \t\(x.metadata.labels.component)   \t\(x.metadata.name)"
-			for x in objects ]
+			for x in objects {
+				"\(x.kind)  \t\(x.metadata.labels.component)   \t\(x.metadata.name)"
+			}
+		]
 		text: strings.Join(Lines, "\n")
 	}
 }
diff --git a/doc/tutorial/kubernetes/quick/services/kube.cue b/doc/tutorial/kubernetes/quick/services/kube.cue
index bf6ae39..394b15e 100644
--- a/doc/tutorial/kubernetes/quick/services/kube.cue
+++ b/doc/tutorial/kubernetes/quick/services/kube.cue
@@ -95,12 +95,14 @@
 	service: "\(k)": {
 		spec: selector: v.spec.template.metadata.labels
 
-		spec: ports: [ {
-			Port = p.containerPort // Port is an alias
-			port:       *Port | int
-			targetPort: *Port | int
-		} for c in v.spec.template.spec.containers
+		spec: ports: [
+			for c in v.spec.template.spec.containers
 			for p in c.ports
-			if p._export ]
+			if p._export {
+				Port = p.containerPort // Port is an alias
+				port:       *Port | int
+				targetPort: *Port | int
+			},
+		]
 	}
 }
diff --git a/doc/tutorial/kubernetes/quick/services/kube_tool.cue b/doc/tutorial/kubernetes/quick/services/kube_tool.cue
index 929ad34..b9c92f3 100644
--- a/doc/tutorial/kubernetes/quick/services/kube_tool.cue
+++ b/doc/tutorial/kubernetes/quick/services/kube_tool.cue
@@ -1,6 +1,6 @@
 package kube
 
-objects: [ x for v in objectSets for x in v ]
+objects: [ for v in objectSets for x in v { x } ]
 
 objectSets: [
 	service,
diff --git a/doc/tutorial/kubernetes/quick/services/ls_tool.cue b/doc/tutorial/kubernetes/quick/services/ls_tool.cue
index 1c73beb..7fc5231 100644
--- a/doc/tutorial/kubernetes/quick/services/ls_tool.cue
+++ b/doc/tutorial/kubernetes/quick/services/ls_tool.cue
@@ -9,8 +9,9 @@
 command: ls: {
 	task: print: cli.Print & {
 		text: tabwriter.Write([
-			"\(x.kind)  \t\(x.metadata.labels.component)  \t\(x.metadata.name)"
-			for x in objects
+			for x in objects {
+				"\(x.kind)  \t\(x.metadata.labels.component)  \t\(x.metadata.name)"
+			}
 		])
 	}
 
diff --git a/doc/tutorial/kubernetes/testdata/manual.out b/doc/tutorial/kubernetes/testdata/manual.out
index e13b62f..4f0b732 100644
--- a/doc/tutorial/kubernetes/testdata/manual.out
+++ b/doc/tutorial/kubernetes/testdata/manual.out
@@ -27,17 +27,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -46,13 +47,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -98,17 +100,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -117,13 +120,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -284,17 +288,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -303,13 +308,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -473,17 +479,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -492,13 +499,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -659,17 +667,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -678,13 +687,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -845,17 +855,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -864,13 +875,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -1034,17 +1046,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -1053,13 +1066,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -1220,17 +1234,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -1239,13 +1254,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -1409,17 +1425,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -1428,13 +1445,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -1480,17 +1498,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -1499,13 +1518,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -1651,17 +1671,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -1670,13 +1691,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -2000,17 +2022,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -2019,13 +2042,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -2248,17 +2272,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -2267,13 +2292,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -2471,17 +2497,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -2490,13 +2517,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -2665,17 +2693,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -2684,13 +2713,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -2877,17 +2907,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -2896,13 +2927,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -2948,17 +2980,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -2967,13 +3000,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -3255,17 +3289,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -3274,13 +3309,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -3559,17 +3595,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -3578,13 +3615,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -3842,17 +3880,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -3861,13 +3900,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -4124,17 +4164,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -4143,13 +4184,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -4410,17 +4452,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -4429,13 +4472,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -4696,17 +4740,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -4715,13 +4760,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -4929,17 +4975,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -4948,13 +4995,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -5029,17 +5077,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -5048,13 +5097,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -5316,17 +5366,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -5335,13 +5386,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -5569,17 +5621,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -5588,13 +5641,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -5836,17 +5890,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -5855,13 +5910,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -6555,17 +6611,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -6574,13 +6631,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -6626,17 +6684,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -6645,13 +6704,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -6942,17 +7002,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -6961,13 +7022,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -7152,17 +7214,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -7171,13 +7234,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
@@ -7792,17 +7856,18 @@
                             name:  X.name
                             image: X.image
                             args:  X.args
-                            ports: [ {
+                            ports: [ for k, p in X.expose.port & X.port {
                                 name:          k
                                 containerPort: p
-                            } for k, p in X.expose.port & X.port ]
+                            } ]
                             if len(X.envSpec) > 0 {
-                                env: [ {
+                                env: [ for k, v in X.envSpec {
                                     name: k
-                                } & v for k, v in X.envSpec ]
+                                    v
+                                } ]
                             }
                             if len(X.volume) > 0 {
-                                volumeMounts: [ {
+                                volumeMounts: [ for v in X.volume {
                                     name:      v.name
                                     mountPath: v.mountPath
                                     if v.subPath != null | true {
@@ -7811,13 +7876,14 @@
                                     if v.readOnly {
                                         readOnly: v.readOnly
                                     }
-                                } for v in X.volume ]
+                                } ]
                             }
                         }]
                         if len(X.volume) > 0 {
-                            volumes: [ v.kubernetes & {
+                            volumes: [ for v in X.volume {
                                 name: v.name
-                            } for v in X.volume ]
+                                v.kubernetes
+                            } ]
                         }
                     }
                     metadata: {
diff --git a/encoding/jsonschema/decode.go b/encoding/jsonschema/decode.go
index 72bd2cb..db9007d 100644
--- a/encoding/jsonschema/decode.go
+++ b/encoding/jsonschema/decode.go
@@ -419,7 +419,7 @@
 
 	default:
 		if !n.IsConcrete() {
-			s.errf(n, "invalid non-concerte value")
+			s.errf(n, "invalid non-concrete value")
 		}
 		return n.Syntax(cue.Final()).(ast.Expr)
 	}
diff --git a/internal/encoding/json/encode_test.go b/internal/encoding/json/encode_test.go
index 0bf2814..e0432bb 100644
--- a/internal/encoding/json/encode_test.go
+++ b/internal/encoding/json/encode_test.go
@@ -154,9 +154,9 @@
 				a: 1
 				b: 3
 			}
-			c: [1, [ x for x in m ]]
+			c: [1, [ for x in m { x } ]]
 			`,
-		out: "json: unsupported node [x for x in m ] (*ast.ListComprehension)",
+		out: "json: unsupported node for x in m {x} (*ast.Comprehension)",
 	}, {
 		name: "disallowMultipleEmbeddings",
 		in: `
