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: {
