diff --git a/cmd/cue/cmd/testdata/script/cmd_dep.txt b/cmd/cue/cmd/testdata/script/cmd_dep.txt
index 25484d7..d847cab 100644
--- a/cmd/cue/cmd/testdata/script/cmd_dep.txt
+++ b/cmd/cue/cmd/testdata/script/cmd_dep.txt
@@ -14,8 +14,8 @@
 )
 
 foo: {
-  a :: string
-  b: a
+  #a: string
+  b: #a
 }
 
 command: do: {
@@ -25,7 +25,7 @@
     }
     outputs: print: cli.Print & {
         text:  json.Marshal(foo & {
-            a :: strings.TrimSpace(inputs.name.stdout)
+            #a: strings.TrimSpace(inputs.name.stdout)
         })
     }
 }
diff --git a/cmd/cue/cmd/testdata/script/cmd_echo.txt b/cmd/cue/cmd/testdata/script/cmd_echo.txt
index 4468d6c..ce0e555 100644
--- a/cmd/cue/cmd/testdata/script/cmd_echo.txt
+++ b/cmd/cue/cmd/testdata/script/cmd_echo.txt
@@ -4,11 +4,11 @@
 -- data.cue --
 package hello
 
-who :: "World"
+_who: "World"
 -- hello.cue --
 package hello
 
-message: "Hello \(who)!" // who declared in data.cue
+message: "Hello \(_who)!" // who declared in data.cue
 -- hello_tool.cue --
 package hello
 
diff --git a/cmd/cue/cmd/testdata/script/cmd_print.txt b/cmd/cue/cmd/testdata/script/cmd_print.txt
index 4fb822a..229b70d 100644
--- a/cmd/cue/cmd/testdata/script/cmd_print.txt
+++ b/cmd/cue/cmd/testdata/script/cmd_print.txt
@@ -24,11 +24,11 @@
 		stdout: string
 	}
 	print: cli.Print & {
-		text: (f & {arg: runs.t1.stdout + runs.t2.stdout}).result
+		text: (#f & {arg: runs.t1.stdout + runs.t2.stdout}).result
 	}
 }
 
-f :: {
+#f: {
     arg: string
     result: strings.Join(strings.Split(arg, ""), ".")
 }
diff --git a/cmd/cue/cmd/testdata/script/cmd_run.txt b/cmd/cue/cmd/testdata/script/cmd_run.txt
index 6c1e04e..18e17c4 100644
--- a/cmd/cue/cmd/testdata/script/cmd_run.txt
+++ b/cmd/cue/cmd/testdata/script/cmd_run.txt
@@ -8,7 +8,7 @@
 -- task_tool.cue --
 package home
 
-command: run: RunBase & {
+command: run: #RunBase & {
 	task: echo: cmd: "echo \(message)"
 }
 
@@ -22,7 +22,7 @@
 
 // deliberately put in another file to test resolving top-level identifiers
 // in different files.
-RunBase :: {
+#RunBase: {
 	task: echo: exec.Run & {
 		stdout: string
 	}
diff --git a/cmd/cue/cmd/testdata/script/def_basic.txt b/cmd/cue/cmd/testdata/script/def_basic.txt
index 9d15658..1d67977 100644
--- a/cmd/cue/cmd/testdata/script/def_basic.txt
+++ b/cmd/cue/cmd/testdata/script/def_basic.txt
@@ -8,7 +8,7 @@
 // foo
 package foo
 
-A :: {
+#A: {
     // a is an integer
     a: int
     b: { c: int } // TODO: should we _not_ simplify?
@@ -22,7 +22,7 @@
 // foo
 package foo
 
-A :: {
+#A: {
 	// a is an integer
 	a: int
 	b: c: int
diff --git a/cmd/cue/cmd/testdata/script/def_openapi.txt b/cmd/cue/cmd/testdata/script/def_openapi.txt
index 65430d8..e9a7a62 100644
--- a/cmd/cue/cmd/testdata/script/def_openapi.txt
+++ b/cmd/cue/cmd/testdata/script/def_openapi.txt
@@ -29,13 +29,13 @@
 
 $version: "v1"
 
-Foo :: {
+#Foo: {
     a: int
     b: uint & <10
 }
 
-Bar :: {
-    foo: Foo
+#Bar: {
+    foo: #Foo
 }
 
 -- openapi.json --
diff --git a/cmd/cue/cmd/testdata/script/eval_concrete.txt b/cmd/cue/cmd/testdata/script/eval_concrete.txt
index 825fa3c..c496349 100644
--- a/cmd/cue/cmd/testdata/script/eval_concrete.txt
+++ b/cmd/cue/cmd/testdata/script/eval_concrete.txt
@@ -14,8 +14,8 @@
 -- data.cue --
 package hello
 
-who :: "World"
+#who: "World"
 -- hello.cue --
 package hello
 
-message: "Hello \(who)!" // who declared in data.cue
+message: "Hello \(#who)!" // who declared in data.cue
diff --git a/cmd/cue/cmd/testdata/script/eval_import.txt b/cmd/cue/cmd/testdata/script/eval_import.txt
index 56f7006..3ecfae3 100644
--- a/cmd/cue/cmd/testdata/script/eval_import.txt
+++ b/cmd/cue/cmd/testdata/script/eval_import.txt
@@ -4,12 +4,12 @@
 import "list"
 
 def: {
-    types :: list.MinItems(1)
+    #types: list.MinItems(1)
 }
 -- in.cue --
 import (
 	"list"
 )
 
-def: types :: list.MinItems(1)
+def: #types: list.MinItems(1)
 
diff --git a/cmd/cue/cmd/testdata/script/export.txt b/cmd/cue/cmd/testdata/script/export.txt
index ad5c5cf..9456ffe 100644
--- a/cmd/cue/cmd/testdata/script/export.txt
+++ b/cmd/cue/cmd/testdata/script/export.txt
@@ -8,10 +8,10 @@
 -- hello/data.cue --
 package hello
 
-who :: "World"
+#who: "World"
 -- hello/hello.cue --
 package hello
 
 $type:   "demo"
-message: "Hello \(who)!" // who declared in data.cue
+message: "Hello \(#who)!" // who declared in data.cue
 -- hello/cue.mod --
diff --git a/cmd/cue/cmd/testdata/script/export_yaml.txt b/cmd/cue/cmd/testdata/script/export_yaml.txt
index 5677c7b..5d5a3d3 100644
--- a/cmd/cue/cmd/testdata/script/export_yaml.txt
+++ b/cmd/cue/cmd/testdata/script/export_yaml.txt
@@ -6,11 +6,11 @@
 -- hello/data.cue --
 package hello
 
-who :: "World"
+_who: "World"
 -- hello/hello.cue --
 package hello
 
-message: "Hello \(who)!" // who declared in data.cue
+message: "Hello \(_who)!" // who declared in data.cue
 
 test: {
 	_foo: string // technically in error, but test anyway.
diff --git a/cmd/cue/cmd/testdata/script/help_doc.txt b/cmd/cue/cmd/testdata/script/help_doc.txt
index fdb55b5..a320526 100644
--- a/cmd/cue/cmd/testdata/script/help_doc.txt
+++ b/cmd/cue/cmd/testdata/script/help_doc.txt
@@ -25,7 +25,7 @@
 package bar
 
 name: "foo"
-D :: int
+_D: int
 
 -- bar.cue --
 3
diff --git a/cmd/cue/cmd/testdata/script/issue217.txt b/cmd/cue/cmd/testdata/script/issue217.txt
index cedf2f9..ecf9ce6 100644
--- a/cmd/cue/cmd/testdata/script/issue217.txt
+++ b/cmd/cue/cmd/testdata/script/issue217.txt
@@ -8,23 +8,23 @@
 package tst
 
 x: {
-	a: A
-	b: A
+	a: #A
+	b: #A
 }
 
-A :: string | [A]
+#A: string | [#A]
 
 -- def-stdout --
 package tst
 
 x: {
-	a: A
-	b: A
+	a: #A
+	b: #A
 }
-A :: string | [A]
+#A: string | [#A]
 -- eval-stdout --
 x: {
-    a: A
-    b: A
+    a: #A
+    b: #A
 }
-A :: string | [A]
+#A: string | [#A]
diff --git a/cmd/cue/cmd/testdata/script/issue269.txt b/cmd/cue/cmd/testdata/script/issue269.txt
index 30bb2da..8137027 100644
--- a/cmd/cue/cmd/testdata/script/issue269.txt
+++ b/cmd/cue/cmd/testdata/script/issue269.txt
@@ -1,7 +1,7 @@
 ! cue eval ./struct.cue
 cmp stderr expect-stderr
 -- struct.cue --
-type :: {
+#type: {
     x: 0
     y: 0
 
@@ -10,8 +10,8 @@
 }
 
 data: {
-    a: type
-    b: type
+    a: #type
+    b: #type
 
     b: x: a.x
     a: y: b.y
diff --git a/cmd/cue/cmd/testdata/script/issue302.txt b/cmd/cue/cmd/testdata/script/issue302.txt
index 835b558..5758539 100644
--- a/cmd/cue/cmd/testdata/script/issue302.txt
+++ b/cmd/cue/cmd/testdata/script/issue302.txt
@@ -4,13 +4,13 @@
 -- foo.cue --
 package p
 
-foo?: Foo
+foo?: #Foo
 
-Foo :: "hello"
+#Foo: "hello"
 
 -- rewritten --
 package p
 
-foo?: Foo
+foo?: #Foo
 
-Foo :: "hello"
\ No newline at end of file
+#Foo: "hello"
\ No newline at end of file
diff --git a/cmd/cue/cmd/testdata/script/issue303.txt b/cmd/cue/cmd/testdata/script/issue303.txt
index ca7d9b8..ee8a58c 100644
--- a/cmd/cue/cmd/testdata/script/issue303.txt
+++ b/cmd/cue/cmd/testdata/script/issue303.txt
@@ -5,12 +5,12 @@
 package example
 
 foo: c: true
-foo: M
-M :: c?: bool
+foo: #M
+#M: c?: bool
 
 -- rewritten --
 package example
 
 foo: c: true
-foo: M
-M :: c?: bool
+foo: #M
+#M: c?: bool
diff --git a/cmd/cue/cmd/testdata/script/issue304.txt b/cmd/cue/cmd/testdata/script/issue304.txt
index d7fe14a..b9c705a 100644
--- a/cmd/cue/cmd/testdata/script/issue304.txt
+++ b/cmd/cue/cmd/testdata/script/issue304.txt
@@ -1,4 +1,4 @@
-cue def -e Foo x.cue
+cue def -e '#Foo' x.cue
 cmp stdout expect-stdout
 
 -- expect-stdout --
@@ -13,7 +13,7 @@
 -- x.cue --
 package example
 
-Foo :: {
+#Foo: {
 	x: int
 	body?: {
 		a: int
diff --git a/cmd/cue/cmd/testdata/script/issue315.txt b/cmd/cue/cmd/testdata/script/issue315.txt
index 2937c20..b0f4275 100644
--- a/cmd/cue/cmd/testdata/script/issue315.txt
+++ b/cmd/cue/cmd/testdata/script/issue315.txt
@@ -3,17 +3,17 @@
 cmp stderr expect-stderr
 
 -- expect-stderr --
-incomplete value 'X.y' in interpolation:
+incomplete value '#X.y' in interpolation:
     ./file.cue:16:3
     ./file.cue:3:5
 -- file.cue --
-X :: {
+#X: {
 	x: string
 	y: string
 	z: string
 }
 
-X :: {
+#X: {
 	x: "x"
 	z: "z"
 }
@@ -21,7 +21,7 @@
 """
 hello
 world
-\(X.x)
-\(X.y)
-\(X.z)
+\(#X.x)
+\(#X.y)
+\(#X.z)
 """
diff --git a/cmd/cue/cmd/testdata/script/vet_data.txt b/cmd/cue/cmd/testdata/script/vet_data.txt
index 5d36377..1fddcd3 100644
--- a/cmd/cue/cmd/testdata/script/vet_data.txt
+++ b/cmd/cue/cmd/testdata/script/vet_data.txt
@@ -5,11 +5,11 @@
 cmp stderr export-stderr
 
 -- schema.cue --
-Language :: {
+#Language: {
 	tag:  string
 	name: =~"^\\p{Lu}" // Must start with an uppercase letter.
 }
-languages: [...Language]
+languages: [...#Language]
 
 -- data.yaml --
 languages:
diff --git a/cmd/cue/cmd/testdata/script/vet_expr.txt b/cmd/cue/cmd/testdata/script/vet_expr.txt
index 0a79f46..4928f1b 100644
--- a/cmd/cue/cmd/testdata/script/vet_expr.txt
+++ b/cmd/cue/cmd/testdata/script/vet_expr.txt
@@ -1,4 +1,4 @@
-! cue vet -d File vet.cue data.yaml
+! cue vet -d '#File' vet.cue data.yaml
 cmp stderr expect-stderr
 
 -- expect-stderr --
@@ -10,7 +10,7 @@
 field "skip" not allowed in closed struct:
     ./data.yaml:20:7
 -- vet.cue --
-File :: {
+#File: {
 	translations: [string]: {
     lang: string
     text: string
diff --git a/cmd/cue/cmd/testdata/script/vet_file.txt b/cmd/cue/cmd/testdata/script/vet_file.txt
index a333535..3ea9df6 100644
--- a/cmd/cue/cmd/testdata/script/vet_file.txt
+++ b/cmd/cue/cmd/testdata/script/vet_file.txt
@@ -21,7 +21,7 @@
 
 translations: [string]: lang: string
 
-File :: {
+#File: {
 	translations: {...}
 }
 -- data.yaml --
diff --git a/cmd/cue/cmd/testdata/script/vet_opt.txt b/cmd/cue/cmd/testdata/script/vet_opt.txt
index ac4b0ba..1339bfe 100644
--- a/cmd/cue/cmd/testdata/script/vet_opt.txt
+++ b/cmd/cue/cmd/testdata/script/vet_opt.txt
@@ -3,7 +3,7 @@
 
 -- expect-stdout --
 -- vet.cue --
-Schema1 :: {
+#Schema1: {
   a?: int
 }
-instance1: Schema1
+instance1: #Schema1
diff --git a/cmd/cue/cmd/testdata/script/vet_yaml.txt b/cmd/cue/cmd/testdata/script/vet_yaml.txt
index fe8c513..7019b28 100644
--- a/cmd/cue/cmd/testdata/script/vet_yaml.txt
+++ b/cmd/cue/cmd/testdata/script/vet_yaml.txt
@@ -4,29 +4,29 @@
 -- expect-stderr --
 phrases: error in call to encoding/yaml.Validate: missing field "text":
     ./yaml.cue:19:10
-    ./yaml.cue:4:12
+    ./yaml.cue:4:11
     ./yaml.cue:11:17
     yaml.Validate:4:6
 -- yaml.cue --
 import "encoding/yaml"
 
 // Phrases defines a schema for a valid phrase.
-Phrases :: {
+#Phrases: {
 	phrases: {
-		[string]: Phrase
+		[string]: #Phrase
 	}
 
-	Phrase :: {
-		lang:         LanguageTag
+	#Phrase: {
+		lang:         #LanguageTag
 		text:         !=""
 		attribution?: !="" // must be non-empty when specified
 	}
-	LanguageTag :: =~"^[a-zA-Z0-9-_]{2,}$" | false
+	#LanguageTag: =~"^[a-zA-Z0-9-_]{2,}$" | false
 }
 
 // phrases is a YAML string with a field phrases that is a map of Phrase
 // objects.
-phrases: yaml.Validate(Phrases)
+phrases: yaml.Validate(#Phrases)
 
 phrases: """
     phrases:
diff --git a/cue/ast_test.go b/cue/ast_test.go
index 40f5fae..1b37205 100644
--- a/cue/ast_test.go
+++ b/cue/ast_test.go
@@ -348,27 +348,6 @@
 	}, {
 		in: `
 		a: d: {
-			base
-			info :: {
-				...
-			}
-			Y: info.X
-		}
-
-		base :: {
-			info :: {...}
-		}
-
-		a: [Name=string]: { info :: {
-			X: "foo"
-		}}
-		`,
-		out: `<0>{` +
-			`a: (<1>{d: <2>{info :: <3>{...}, Y: <2>.info.X}, <0>.base} & <4>{[]: <5>(Name: string)-><6>{info :: <7>C{X: "foo"}}, }), ` +
-			`base :: <8>C{info :: <9>{...}}}`,
-	}, {
-		in: `
-		a: d: {
 			#base
 			#info: {
 				...
@@ -389,13 +368,13 @@
 			`#base: <8>C{#info: <9>{...}}}`,
 	}, {
 		in: `
-		def :: {
+		#def: {
 			Type: string
 			Text: string
 			Size: int
 		}
 
-		def :: {
+		#def: {
 			Type: "B"
 			Size: 0
 		} | {
@@ -404,16 +383,16 @@
 		}
 		`,
 		out: `<0>{` +
-			`def :: (<1>C{Size: int, Type: string, Text: string} & (<2>C{Size: 0, Type: "B"} | <3>C{Size: 1, Type: "A"}))` +
+			`#def: (<1>C{Size: int, Type: string, Text: string} & (<2>C{Size: 0, Type: "B"} | <3>C{Size: 1, Type: "A"}))` +
 			`}`,
 	}, {
 		// Issue #172
 		in: `
 		package testenv
-		env_:: [NAME=_]: [VALUE=_]
-		env_:: foo: "bar"
+		#env_: [NAME=_]: [VALUE=_]
+		#env_: foo: "bar"
 			`,
-		out: "env_.*: alias not allowed in list:\n    test:3:20\n<0>{}",
+		out: "#env_.*: alias not allowed in list:\n    test:3:20\n<0>{}",
 	}, {
 		// Issue #276
 		in: `
diff --git a/cue/build_test.go b/cue/build_test.go
index 14f7479..97bf20b 100644
--- a/cue/build_test.go
+++ b/cue/build_test.go
@@ -170,9 +170,9 @@
 				`package test
 
 				import pkg2 "pkg1"
-				pkg1 :: pkg2.Object
+				#pkg1: pkg2.Object
 
-				"Hello \(pkg1)!"`),
+				"Hello \(#pkg1)!"`),
 		}),
 		`"Hello World!"`,
 	}, {
diff --git a/cue/export_test.go b/cue/export_test.go
index 79f6018..24c90d4 100644
--- a/cue/export_test.go
+++ b/cue/export_test.go
@@ -336,21 +336,21 @@
 		// of topological sort to preserve order.
 		raw: true,
 		in: `{
-			emb :: {
+			#emb: {
 				a: 1
 
 				sub: {
 					f: 3
 				}
 			}
-			def :: {
-				emb
+			#def: {
+				#emb
 
 				b: 2
 			}
-			f :: { a: 10 }
-			e :: {
-				f
+			#f: a: 10
+			#e: {
+				#f
 
 				b: int
 				[_]: <100
@@ -359,21 +359,21 @@
 		}`,
 		out: unindent(`
 		{
-			emb :: {
+			#emb: {
 				a: 1
 				sub: f: 3
 			}
-			f :: {
+			#def: {
+				b: 2
+				#emb
+			}
+			#f: {
 				a: 10
 			}
-			def :: {
-				b: 2
-				emb
-			}
-			e :: {
+			#e: {
 				{[string]: <100}
 				b: int
-				f
+				#f
 				{[string]: <300}
 			}
 		}`),
@@ -383,16 +383,16 @@
 		noOpt: true,
 		in: `{
 				reg: { foo: 1, bar: { baz: 3 } }
-				def :: {
+				#def: {
 					a: 1
 
 					sub: reg
 				}
-				val: def
-				def2 :: {
+				val: #def
+				#def2: {
 					a: { b: int }
 				}
-				val2: def2
+				val2: #def2
 			}`,
 		out: unindent(`
 		{
@@ -400,15 +400,15 @@
 				foo: 1
 				bar: baz: 3
 			}
-			def :: {
+			#def: {
 				a:   1
 				sub: reg
 			}
-			val: def
-			def2 :: {
+			val: #def
+			#def2: {
 				a: b: int
 			}
-			val2: def2
+			val2: #def2
 		}`),
 	}, {
 		raw:  true,
@@ -457,82 +457,88 @@
 		raw:  true,
 		eval: true,
 		in: `{
-			Foo :: {
-			Bar :: Foo | string
+			#Foo: {
+			#Bar: #Foo | string
 			}
 		}`,
 		out: unindent(`
 		{
-			Foo :: {
-				Bar :: Foo | string
+			#Foo: {
+				#Bar: #Foo | string
 			}
 		}`),
 	}, {
 		raw:  true,
 		eval: true,
 		in: `{
-				FindInMap :: {
-					"Fn::FindInMap" :: [string | FindInMap]
+				#FindInMap: {
+					#: "Fn::FindInMap": [string | #FindInMap]
 				}
 				a: [...string]
 			}`,
 		out: unindent(`
 			{
-				FindInMap :: {
-					"Fn::FindInMap" :: [string | FindInMap]
+				#FindInMap: {
+					#: {
+						"Fn::FindInMap": [string | #FindInMap]
+					}
 				}
 				a: [...string]
-			}`)}, {
+			}`),
+	}, {
 		raw:   true,
 		eval:  true,
 		noOpt: true,
 		in: `{
-				And :: {
-					"Fn::And": [...(3 | And)]
+				#And: {
+					#: "Fn::And": [...(3 | #And)]
 				}
-				Ands: And & {
-					"Fn::And" : [_]
+				#Ands: #And & {
+					#: "Fn::And" : [_]
 				}
 			}`,
 		out: unindent(`
 			{
-				And :: {
-					"Fn::And": [...3 | And]
+				#And: {
+					#: {
+						"Fn::And": [...3 | #And]
+					}
 				}
-				Ands: And & {
-					"Fn::And": [_]
+				#Ands: #And & {
+					#: {
+						"Fn::And": [_]
+					}
 				}
 			}`),
 	}, {
 		raw:  true,
 		eval: true,
 		in: `{
-			Foo :: {
-				sgl: Bar
-				ref: null | Foo
-				ext: Bar | null
-				ref: null | Foo
-				ref2: null | Foo.sgl
+			#Foo: {
+				sgl: #Bar
+				ref: null | #Foo
+				ext: #Bar | null
+				ref: null | #Foo
+				ref2: null | #Foo.sgl
 				...
 			}
-			Foo :: {
-				Foo: 2
+			#Foo: {
+				"#Foo": 2
 				...
 			}
-			Bar :: string
+			#Bar: string
 		}`,
 		out: unindent(`
 		{
-			FOO = Foo
-			Foo :: {
-				Foo:  2
-				sgl:  Bar
-				ref:  (null | FOO) & (null | FOO)
-				ext:  Bar | null
-				ref2: null | FOO.sgl
+			#Foo: {
+				"#Foo": 2
+				sgl:    #Bar
+				ref:    (null | #Foo) & (null | #Foo)
+				ext:    #Bar | null
+				ref2:   null | #Foo.sgl
 				...
 			}
-			Bar :: string
+			#Bar: string
 		}`),
 	}, {
 		raw:  true,
@@ -698,8 +704,8 @@
 		B: {}
 		B: {a: int} | {b: int}
 
-		C :: [D]: int
-		D :: string
+		#C: [#D]: int
+		#D: string
 		`,
 		out: unindent(`
 		A: {
@@ -710,11 +716,11 @@
 		} | {
 			b: int
 		})
-		C :: {
-			[D]: int
-			[D]: int
+		#C: {
+			[#D]: int
+			[#D]: int
 		}
-		D :: string`),
+		#D: string`),
 	}, {
 		in: `
 		a: {
@@ -747,18 +753,18 @@
 		eval: true,
 		opts: []Option{ResolveReferences(true)},
 		in: `
-		A :: { b: int }
-		a: A & { [string]: <10 }
-		B :: a
+		#A: { b: int }
+		a: #A & { [string]: <10 }
+		#B: a
 		`,
 		out: unindent(`
-		A :: {
+		#A: {
 			b: int
 		}
 		a: close({
 			b: <10
 		})
-		B :: {
+		#B: {
 			b: <10
 		}`),
 	}, {
@@ -766,12 +772,12 @@
 		opts: []Option{Final()},
 		in: `{
 			reg: { foo: 1, bar: { baz: 3 } }
-			def :: {
+			#def: {
 				a: 1
 
 				sub: reg
 			}
-			val: def
+			val: #def
 		}`,
 		out: unindent(`
 		{
@@ -791,23 +797,23 @@
 		eval: true,
 		opts: []Option{ResolveReferences(true)},
 		in: `
-			T :: {
+			#T: {
 				[_]: int64
 			}
-			X :: {
+			#X: {
 				x: int
-			} & T
-			x: X
+			} & #T
+			x: #X
 			`,
 		out: unindent(`
-		T :: {
-			[string]: int64
-		}
 		x: {
 			{[string]: int64}
 			x: int64
 		}
-		X :: {
+		#T: {
+			[string]: int64
+		}
+		#X: {
 			{[string]: int64}
 			x: int64
 		}`),
@@ -815,18 +821,18 @@
 		eval: true,
 		opts: []Option{Optional(false), ResolveReferences(true)},
 		in: `
-		T :: {
+		#T: {
 			[_]: int64
 		}
-		X :: {
+		#X: {
 			x: int
-		} & T
-		x: X
+		} & #T
+		x: #X
 		`,
 		out: unindent(`
-		T :: {}
 		x: x: int64
-		X :: {
+		#T: {}
+		#X: {
 			x: int64
 		}`),
 	}, {
@@ -834,16 +840,16 @@
 		opts: []Option{ResolveReferences(true)},
 		in: `{
 				reg: { foo: 1, bar: { baz: 3 } }
-				def :: {
+				#def: {
 					a: 1
-	
+
 					sub: reg
 				}
-				val: def
-				def2 :: {
+				val: #def
+				#def2: {
 					a: { b: int }
 				}
-				val2: def2
+				val2: #def2
 			}`,
 		out: unindent(`
 			{
@@ -851,7 +857,7 @@
 					foo: 1
 					bar: baz: 3
 				}
-				def :: {
+				#def: {
 					a: 1
 					sub: {
 						foo: 1
@@ -869,7 +875,7 @@
 						bar: baz: 3
 					}
 				})
-				def2 :: {
+				#def2: {
 					a: b: int
 				}
 				val2: close({
@@ -894,21 +900,21 @@
 		eval: true,
 		opts: []Option{ResolveReferences(true)},
 		in: `
-		A :: {
+		#A: {
 			[=~"^[a-s]*$"]: int
 		}
-		B :: {
+		#B: {
 			[=~"^[m-z]+"]: int
 		}
-		C: {A & B}
-		D :: {A & B}
+		C: {#A & #B}
+		#D: {#A & #B}
 		`,
 		// TODO: the outer close of C could be optimized away.
 		out: unindent(`
-		A :: {
+		#A: {
 			[=~"^[a-s]*$"]: int
 		}
-		B :: {
+		#B: {
 			[=~"^[m-z]+"]: int
 		}
 		C: close({
@@ -918,7 +924,7 @@
 				[=~"^[m-z]+"]: int
 			})
 		})
-		D :: {
+		#D: {
 			close({
 				[=~"^[a-s]*$"]: int
 			}) & close({
@@ -930,24 +936,24 @@
 		opts: []Option{Docs(true)},
 		in: `
 		// Definition
-		A :: {
+		#A: {
 			// TODO: support
 			[string]: int
 		}
 		// Field
-		a: A
+		a: #A
 
 		// Pick first comment only.
 		a: _
 		`,
 		out: unindent(`
 		// Definition
-		A :: {
+		#A: {
 			[string]: int
 		}
 
 		// Field
-		a: A`),
+		a: #A`),
 	}, {
 		eval: true,
 		opts: []Option{Docs(true)},
@@ -983,7 +989,9 @@
 		a: #A.#B
 		`,
 		out: unindent(`
-		#A: #B: 4
+		#A: {
+			#B: 4
+		}
 		a: #A.#B`),
 	}, {
 		eval: true,
@@ -1032,21 +1040,21 @@
 		import "math"
 		import "tool/exec"
 
-		A :: {
+		#A: {
 			b: 3
 		}
 
-		a:   A
+		a:   #A
 		pi:  math.Pi
 		run: exec.Run
 		`,
 		out: unindent(`
 		import "tool/exec"
 
-		A :: {
+		#A: {
 			b: 3
 		}
-		a:   A
+		a:   #A
 		pi:  3.14159265358979323846264338327950288419716939937510582097494459
 		run: exec.Run`),
 	}, {
@@ -1090,19 +1098,19 @@
 		package tst
 
 		x: {
-			a: A
-			b: A
+			a: #A
+			b: #A
 		}
-		A :: string | [A]
+		#A: string | [#A]
 
 		`,
 		out: unindent(`
 		{
 			x: {
-				a: A
-				b: A
+				a: #A
+				b: #A
 			}
-			A :: string | [A]
+			#A: string | [#A]
 		}`),
 	}, {
 		eval: true,
@@ -1146,16 +1154,16 @@
 	}, {
 		eval: true,
 		in: `
-		A :: {
+		#A: {
 			foo: int @tag2(2)
 		} @tag2(1)
 
-		A :: {
+		#A: {
 			foo: 2 @tag(2)
 		} @tag(1)
 
 		`,
-		out: `A :: {
+		out: `#A: {
 	foo: 2 @tag(2) @tag2(2)
 } @tag(1) @tag2(1)`,
 	}}
diff --git a/cue/format/node.go b/cue/format/node.go
index f626851..3915328 100644
--- a/cue/format/node.go
+++ b/cue/format/node.go
@@ -234,7 +234,7 @@
 }
 
 func (f *formatter) inlineField(n *ast.Field) *ast.Field {
-	regular := isRegularField(n.Token)
+	regular := internal.IsRegularField(n)
 	// shortcut single-element structs.
 	// If the label has a valid position, we assume that an unspecified
 	// Lbrace signals the intend to collapse fields.
diff --git a/cue/format/testdata/expressions.golden b/cue/format/testdata/expressions.golden
index cfc4124..be50d3d 100644
--- a/cue/format/testdata/expressions.golden
+++ b/cue/format/testdata/expressions.golden
@@ -44,7 +44,7 @@
 		field: 2
 	}
 
-	openDef :: {
+	#openDef: {
 		a: int
 		...
 	}
diff --git a/cue/format/testdata/expressions.input b/cue/format/testdata/expressions.input
index 9ea36d0..a1be441 100644
--- a/cue/format/testdata/expressions.input
+++ b/cue/format/testdata/expressions.input
@@ -44,7 +44,7 @@
         field: 2
     }
 
-    openDef :: {
+    #openDef: {
         a: int
         ...
     }
diff --git a/cue/parser/parser_test.go b/cue/parser/parser_test.go
index e717836..20d3e1b 100644
--- a/cue/parser/parser_test.go
+++ b/cue/parser/parser_test.go
@@ -103,7 +103,7 @@
 		`a: true, b?: "2", c?: 3, "g\("en")"?: 4`,
 	}, {
 		"definition",
-		`Def :: {
+		`#Def: {
 			 b: "2"
 			 c: 3
 
@@ -111,7 +111,7 @@
 		}
 		#Def: {}
 		`,
-		`Def :: {b: "2", c: 3, embedding}, #Def: {}`,
+		`#Def: {b: "2", c: 3, embedding}, #Def: {}`,
 	}, {
 		"one-line embedding",
 		`{ V1, V2 }`,
diff --git a/cue/resolve_test.go b/cue/resolve_test.go
index c0c5b60..2c30c64 100644
--- a/cue/resolve_test.go
+++ b/cue/resolve_test.go
@@ -852,11 +852,11 @@
 			e6: (*[]|{})[1]
 			def: {
 				a: 1
-				b :: 3
+				#b: 3
 			}
 			e7: def["b"]
 		`,
-		out: `<0>{a: 2, b: "bar", c: _|_("3":invalid list index "3" (type string)), l: [], d: _|_([]:index 0 out of bounds), e1: _|_("":invalid list index "" (type string)), e2: _|_(2:invalid operation: 2[2] (type int does not support indexing)), e3: _|_(true:invalid list index true (type bool)), e4: _|_([1,2,3]:index 3 out of bounds), e5: _|_(-1:invalid list index -1 (index must be non-negative)), e6: _|_([]:index 1 out of bounds), def: <1>{a: 1, b :: 3}, e7: _|_(<2>.def["b"]:field "b" is a definition)}`,
+		out: `<0>{a: 2, b: "bar", c: _|_("3":invalid list index "3" (type string)), l: [], d: _|_([]:index 0 out of bounds), e1: _|_("":invalid list index "" (type string)), e2: _|_(2:invalid operation: 2[2] (type int does not support indexing)), e3: _|_(true:invalid list index true (type bool)), e4: _|_([1,2,3]:index 3 out of bounds), e5: _|_(-1:invalid list index -1 (index must be non-negative)), e6: _|_([]:index 1 out of bounds), def: <1>{a: 1, #b: 3}, e7: <2>.def["b"]}`,
 		// }, {
 		// NOTE: string indexing no longer supported.
 		// Keeping it around until this is no longer an experiment.
@@ -1156,7 +1156,7 @@
 	}, {
 		desc: "definitions",
 		in: `
-			Foo :: {
+			#Foo: {
 				field: int
 				recursive: {
 					field: string
@@ -1164,13 +1164,13 @@
 			}
 
 			// Allowed
-			Foo1 :: { field: int }
-			Foo1 :: { field2: string }
+			#Foo1: { field: int }
+			#Foo1: { field2: string }
 
-			foo: Foo
+			foo: #Foo
 			foo: { feild: 2 }
 
-			foo1: Foo
+			foo1: #Foo
 			foo1: {
 				field: 2
 				recursive: {
@@ -1178,69 +1178,70 @@
 				}
 			}
 
-			Bar :: {
+			#Bar: {
 				field: int
 				{[A=_]:   int}
 			}
-			bar: Bar
+			bar: #Bar
 			bar: { feild: 2 }
 
-			Mixed :: string
+			#Mixed: string
 			Mixed: string
 
-			mixedRec: { Mixed :: string }
+			mixedRec: { #Mixed: string }
 			mixedRec: { Mixed: string }
 			`,
 		out: `<0>{` +
-			`Foo :: <1>C{field: int, recursive: <2>C{field: string}}, ` +
-			`Foo1 :: <3>C{field: int, field2: string}, ` +
+			`#Foo: <1>C{field: int, recursive: <2>C{field: string}}, ` +
+			`#Foo1: <3>C{field: int, field2: string}, ` +
 			`foo: _|_(2:field "feild" not allowed in closed struct), ` +
 			`foo1: <4>C{field: 2, recursive: _|_(2:field "feild" not allowed in closed struct)}, ` +
-			`Bar :: <5>{[]: <6>(A: string)->int, field: int}, ` +
+			`#Bar: <5>{[]: <6>(A: string)->int, field: int}, ` +
 			`bar: <7>{[]: <8>(A: string)->int, field: int, feild: 2}, ` +
-			`Mixed: _|_(field "Mixed" declared as definition and regular field), ` +
-			`mixedRec: _|_(field "Mixed" declared as definition and regular field)}`,
+			`#Mixed: string, ` +
+			`Mixed: string, ` +
+			`mixedRec: <9>{#Mixed: string, Mixed: string}}`,
 	}, {
 		desc: "combined definitions",
 		in: `
 			// Allow combining of structs within a definition
-			D1 :: {
+			#D1: {
 				env: a: "A"
 				env: b: "B"
-				def :: {a: "A"}
-				def :: {b: "B"}
+				#def: {a: "A"}
+				#def: {b: "B"}
 			}
 
-			d1: D1 & { env: c: "C" }
+			d1: #D1 & { env: c: "C" }
 
-			D2 :: {
+			#D2: {
 				a: int
 			}
-			D2 :: {
+			#D2: {
 				b: int
 			}
 
-			D3 :: {
+			#D3: {
 				env: a: "A"
 			}
-			D3 :: {
+			#D3: {
 				env: b: "B"
 			}
 
-			D4 :: {
-				env: DC
+			#D4: {
+				env: #DC
 				env: b: int
 			}
 
-			DC :: { a: int }
+			#DC: { a: int }
 					`,
 		out: `<0>{` +
-			`D1 :: <1>C{env: <2>C{a: "A", b: "B"}, def :: <3>C{a: "A", b: "B"}}, ` +
-			`d1: <4>C{env: _|_("C":field "c" not allowed in closed struct), def :: <5>C{a: "A", b: "B"}}, ` +
-			`D2 :: <6>C{a: int, b: int}, ` +
-			`D3 :: <7>C{env: <8>C{a: "A", b: "B"}}, ` +
-			`D4 :: <9>C{env: _|_(int:field "b" not allowed in closed struct)}, ` +
-			`DC :: <10>C{a: int}` +
+			`#D1: <1>C{env: <2>C{a: "A", b: "B"}, #def: <3>C{a: "A", b: "B"}}, ` +
+			`d1: <4>C{env: _|_("C":field "c" not allowed in closed struct), #def: <5>C{a: "A", b: "B"}}, ` +
+			`#D2: <6>C{a: int, b: int}, ` +
+			`#D3: <7>C{env: <8>C{a: "A", b: "B"}}, ` +
+			`#D4: <9>C{env: _|_(int:field "b" not allowed in closed struct)}, ` +
+			`#DC: <10>C{a: int}` +
 			`}`,
 	}, {
 		desc: "new-style definitions",
@@ -1266,71 +1267,71 @@
 		desc: "recursive closing starting at non-definition",
 		in: `
 			z: a: {
-				B:: {
+				#B: {
 					c: d: 1
 					c: f: 1
 				}
 			}
-			A: z & { a: { B :: { c: e: 2 } } }
+			A: z & { a: { #B: { c: e: 2 } } }
 			`,
-		out: `<0>{z: <1>{a: <2>{B :: <3>C{c: <4>C{d: 1, f: 1}}}}, A: <5>{a: <6>{B :: <7>C{c: _|_(2:field "e" not allowed in closed struct)}}}}`,
+		out: `<0>{z: <1>{a: <2>{#B: <3>C{c: <4>C{d: 1, f: 1}}}}, A: <5>{a: <6>{#B: <7>C{c: _|_(2:field "e" not allowed in closed struct)}}}}`,
 	}, {
 		desc: "non-closed definition carries over closedness to enclosed template",
 		in: `
-		S :: {
+		#S: {
 			[string]: { a: int }
 		}
-		a: S & {
+		a: #S & {
 			v: { b: int }
 		}
-		Q :: {
+		#Q: {
 			[string]: { a: int } | { b: int }
 		}
-		b: Q & {
+		b: #Q & {
 			w: { c: int }
 		}
-		R :: {
+		#R: {
 			[string]: [{ a: int }, { b: int }]
 		}
-		c: R & {
+		c: #R & {
 			w: [{ d: int }, ...]
 		}
 		`,
 		out: `<0>{` +
-			`S :: <1>{[]: <2>(_: string)-><3>C{a: int}, }, ` +
+			`#S: <1>{[]: <2>(_: string)-><3>C{a: int}, }, ` +
 			`a: <4>{[]: <5>(_: string)-><6>C{a: int}, v: _|_(int:field "b" not allowed in closed struct)}, ` +
 			`b: <7>{[]: <8>(_: string)->(<9>C{a: int} | <10>C{b: int}), w: _|_(int:empty disjunction: field "c" not allowed in closed struct)}, ` +
-			`Q :: <11>{[]: <12>(_: string)->(<13>C{a: int} | <14>C{b: int}), }, ` +
+			`#Q: <11>{[]: <12>(_: string)->(<13>C{a: int} | <14>C{b: int}), }, ` +
 			`c: <15>{[]: <16>(_: string)->[<17>C{a: int},<18>C{b: int}], w: [_|_(int:field "d" not allowed in closed struct),<19>C{b: int}]}, ` +
-			`R :: <20>{[]: <21>(_: string)->[<22>C{a: int},<23>C{b: int}], }}`,
+			`#R: <20>{[]: <21>(_: string)->[<22>C{a: int},<23>C{b: int}], }}`,
 	}, {
 		desc: "definitions with disjunctions",
 		in: `
-			Foo :: {
+			#Foo: {
 				field: int
 
 				{ a: 1 } |
 				{ b: 2 }
 			}
 
-			foo: Foo
+			foo: #Foo
 			foo: { a: 1 }
 
-			bar: Foo
+			bar: #Foo
 			bar: { c: 2 }
 
-			baz: Foo
+			baz: #Foo
 			baz: { b: 2 }
 			`,
 		out: `<0>{` +
-			`Foo :: (<1>C{field: int, a: 1} | <2>C{field: int, b: 2}), ` +
+			`#Foo: (<1>C{field: int, a: 1} | <2>C{field: int, b: 2}), ` +
 			`foo: <3>C{field: int, a: 1}, ` +
 			`bar: _|_(2:empty disjunction: field "c" not allowed in closed struct), ` +
 			`baz: <4>C{field: int, b: 2}}`,
 	}, {
 		desc: "definitions with disjunctions recurisive",
 		in: `
-			Foo :: {
+			#Foo: {
 				x: {
 					field: int
 
@@ -1341,41 +1342,41 @@
 			}
 					`,
 		out: `<0>{` +
-			`Foo :: <1>C{x: (<2>C{field: int, a: 1, c: 3} | <3>C{field: int, b: 2, c: 3})}` +
+			`#Foo: <1>C{x: (<2>C{field: int, a: 1, c: 3} | <3>C{field: int, b: 2, c: 3})}` +
 			`}`,
 	}, {
 		desc: "definitions with embedding",
 		in: `
-		E :: {
+		#E: {
 			a: { b: int }
 		}
 
-		S :: {
-			E
+		#S: {
+			#E
 			a: { c: int }
 			b: 3
 		}
 
 		// adding a field to a nested struct that is closed.
-		e1 :: S & { a: d: 4 }
+		#e1: #S & { a: d: 4 }
 		// literal struct not closed until after unification.
-		v1 :: S & { a: c: 4 }
+		#v1: #S & { a: c: 4 }
 		`,
 		out: `<0>{` +
-			`E :: <1>C{a: <2>C{b: int}}, ` +
-			`S :: <3>C{a: <4>C{b: int, c: int}, b: 3}, ` +
-			`e1 :: <5>C{a: _|_(4:field "d" not allowed in closed struct), b: 3}, ` +
-			`v1 :: <6>C{a: <7>C{b: int, c: 4}, b: 3}}`,
+			`#E: <1>C{a: <2>C{b: int}}, ` +
+			`#S: <3>C{a: <4>C{b: int, c: int}, b: 3}, ` +
+			`#e1: <5>C{a: _|_(4:field "d" not allowed in closed struct), b: 3}, ` +
+			`#v1: <6>C{a: <7>C{b: int, c: 4}, b: 3}}`,
 	}, {
 		desc: "top-level definition with struct and disjunction",
 		in: `
-		def :: {
+		#def: {
 			Type: string
 			Text: string
 			Size: int
 		}
 
-		def :: {
+		#def: {
 			Type: "B"
 			Size: 0
 		} | {
@@ -1383,7 +1384,7 @@
 			Size: 1
 		}`,
 		out: `<0>{` +
-			`def :: (<1>C{Size: (0 & int), Type: ("B" & string), Text: string} | ` +
+			`#def: (<1>C{Size: (0 & int), Type: ("B" & string), Text: string} | ` +
 			`<2>C{Size: (1 & int), Type: ("A" & string), Text: string})` +
 			`}`,
 	}, {
@@ -1429,7 +1430,7 @@
 	}, {
 		desc: "excluded embedding from closing",
 		in: `
-		S :: {
+		#S: {
 			a: { c: int }
 			{
 				c: { d: int }
@@ -1437,13 +1438,13 @@
 			B = { open: int }
 			b: B
 		}
-		V: S & {
+		V: #S & {
 			c: e: int
 			b: extra: int
 		}
 		`,
 		out: `<0>{` +
-			`S :: <1>C{` +
+			`#S: <1>C{` +
 			`a: <2>C{c: int}, ` +
 			`c: <3>{d: int}, ` +
 			`b: <4>{open: int}}, ` +
@@ -1454,70 +1455,70 @@
 	}, {
 		desc: "closing with failed optional",
 		in: `
-		k1 :: {a: int, b?: int} & A // closed({a: int})
-		k2 :: A & {a: int, b?: int} // closed({a: int})
+		#k1: {a: int, b?: int} & #A // closed({a: int})
+		#k2: #A & {a: int, b?: int} // closed({a: int})
 
 		o1: {a?: 3} & {a?: 4} // {a?: _|_}
 
 		// Optional fields with error values can be elimintated when closing
-		o2 :: {a?: 3} & {a?: 4} // close({})
+		#o2: {a?: 3} & {a?: 4} // close({})
 
-		d1 :: {a?: 2, b: 4} | {a?: 3, c: 5}
-		v1: d1 & {a?: 3, b: 4}  // close({b: 4})
+		#d1: {a?: 2, b: 4} | {a?: 3, c: 5}
+		v1: #d1 & {a?: 3, b: 4}  // close({b: 4})
 
-		A :: {a: int}
+		#A: {a: int}
 		`,
 		out: `<0>{` +
-			`k1 :: <1>C{a: int}, ` +
-			`A :: <2>C{a: int}, ` +
-			`k2 :: <3>C{a: int}, ` +
+			`#k1: <1>C{a: int}, ` +
+			`#A: <2>C{a: int}, ` +
+			`#k2: <3>C{a: int}, ` +
 			`o1: <4>{a?: _|_((3 & 4):conflicting values 3 and 4)}, ` +
-			`o2 :: <5>C{a?: _|_((3 & 4):conflicting values 3 and 4)}, ` +
-			`d1 :: (<6>C{a?: 2, b: 4} | <7>C{a?: 3, c: 5}), ` +
+			`#o2: <5>C{a?: _|_((3 & 4):conflicting values 3 and 4)}, ` +
+			`#d1: (<6>C{a?: 2, b: 4} | <7>C{a?: 3, c: 5}), ` +
 			`v1: <8>C{a?: _|_((2 & 3):conflicting values 2 and 3), b: 4}` +
 			`}`,
 	}, {
 		desc: "closing with comprehensions",
 		in: `
-		A :: {f1: int, f2: int}
+		#A: {f1: int, f2: int}
 
 		for k, v in {f3 : int} {
-			a: A & { "\(k)": v }
+			a: #A & { "\(k)": v }
 		}
 
-		B :: {
+		#B: {
 			for k, v in {f1: int} {
 				"\(k)": v
 			}
 		}
 
-		C :: {
+		#C: {
 			f1: _
 			for k, v in {f1: int} {
 				"\(k)": v
 			}
 		}
 
-		D :: {
+		#D: {
 			for k, v in {f1: int} {
 				"\(k)": v
 			}
 			...
 		}
 
-		E :: A & {
+		#E: #A & {
 			for k, v in { f3: int } {
 				"\(k)": v
 			}
 		}
 		`,
 		out: `<0>{` +
-			`E :: _|_(<1>.v:field "f3" not allowed in closed struct), ` +
-			`A :: <2>C{f1: int, f2: int}, ` +
-			`a: _|_(<3>.v:field "f3" not allowed in closed struct), ` +
-			`B :: <4>C{f1: int}, ` +
-			`C :: <5>C{f1: int}, ` +
-			`D :: <6>{f1: int, ...}` +
+			`#A: <1>C{f1: int, f2: int}, ` +
+			`a: _|_(<2>.v:field "f3" not allowed in closed struct), ` +
+			`#B: <3>C{f1: int}, ` +
+			`#C: <4>C{f1: int}, ` +
+			`#D: <5>{f1: int, ...}, ` +
+			`#E: _|_(<6>.v:field "f3" not allowed in closed struct)` +
 			`}`,
 	}, {
 		desc: "incomplete comprehensions",
@@ -1792,7 +1793,7 @@
 				}
 			}
 
-			for k, v in { def :: 1, opt?: 2, _hid: 3, reg: 4 } {
+			for k, v in { #def: 1, opt?: 2, _hid: 3, reg: 4 } {
 				"\(k)": v
 			}
 		`,
@@ -2535,7 +2536,7 @@
 		foo: {
 			opt?: 1
 			"txt": 2
-			def :: 3
+			#def: 3
 			regular: 4
 			_hidden: 5
 		}
@@ -2543,41 +2544,41 @@
 		select: {
 			opt: foo.opt
 			"txt": foo.txt
-			def :: foo.def
+			#def: foo.#def
 			regular: foo.regular
 			_hidden: foo._hidden
 		}
 		index: {
 			opt: foo["opt"]
 			"txt": foo["txt"]
-			def :: foo["def"]
+			#def: foo["#def"]
 			regular: foo["regular"]
 			_hidden: foo["_hidden"]
 		}
 		`,
 		out: `<0>{` +
-			`foo: <1>{opt?: 1, txt: 2, def :: 3, regular: 4, _hidden: 5}, ` +
+			`foo: <1>{opt?: 1, txt: 2, #def: 3, regular: 4, _hidden: 5}, ` +
 			`comp: <2>{txt: 2, regular: 4}, ` +
-			`select: <3>{opt: <4>.foo.opt, txt: 2, def :: 3, regular: 4, _hidden: 5}, ` +
-			`index: <5>{opt: <4>.foo["opt"], txt: 2, def :: _|_(<4>.foo["def"]:field "def" is a definition), regular: 4, _hidden: <4>.foo["_hidden"]}}`,
+			`select: <3>{opt: <4>.foo.opt, txt: 2, #def: 3, regular: 4, _hidden: 5}, ` +
+			`index: <5>{opt: <4>.foo["opt"], txt: 2, #def: <4>.foo["#def"], regular: 4, _hidden: <4>.foo["_hidden"]}}`,
 	}, {
 		desc: "retain references with interleaved embedding",
 		in: `
 		a: d: {
-			base
-			info :: {...}
-			Y: info.X
+			#base
+			#info: {...}
+			Y: #info.X
 		}
 
-		base :: {
-			info :: {...}
+		#base: {
+			#info: {...}
 		}
 
-		a: [Name=string]: { info :: {
+		a: [Name=string]: { #info: {
 			X: "foo"
 		}}
 		`,
-		out: `<0>{a: <1>{[]: <2>(Name: string)-><3>{info :: <4>C{X: "foo"}}, d: <5>C{info :: <6>C{X: "foo"}, Y: "foo"}}, base :: <7>C{info :: <8>{...}}}`,
+		out: `<0>{a: <1>{[]: <2>(Name: string)-><3>{#info: <4>C{X: "foo"}}, d: <5>C{#info: <6>C{X: "foo"}, Y: "foo"}}, #base: <7>C{#info: <8>{...}}}`,
 	}, {
 		desc: "comparison against bottom",
 		in: `
@@ -2598,35 +2599,35 @@
 	}, {
 		desc: "or builtin should not fail on non-concrete empty list",
 		in: `
-		Workflow :: {
+		#Workflow: {
 			jobs: {
 				[jobID=string]: {
 				}
 			}
-			JobID :: or([ for k, _ in jobs { k } ])
+			#JobID: or([ for k, _ in jobs { k } ])
 		}
 
-		foo: Workflow & {
+		foo: #Workflow & {
 			jobs: foo: {
 			}
 		}
 		`,
-		out: `<0>{Workflow :: <1>C{jobs: <2>{[]: <3>(jobID: string)-><4>C{}, }, JobID :: or ([ <5>for k, _ in <6>.jobs yield <5>.k ])}, foo: <7>C{jobs: <8>{[]: <9>(jobID: string)-><10>C{}, foo: <11>C{}}, JobID :: "foo"}}`,
+		out: `<0>{#Workflow: <1>C{jobs: <2>{[]: <3>(jobID: string)-><4>C{}, }, #JobID: or ([ <5>for k, _ in <6>.jobs yield <5>.k ])}, foo: <7>C{jobs: <8>{[]: <9>(jobID: string)-><10>C{}, foo: <11>C{}}, #JobID: "foo"}}`,
 	}, {
 		desc: "Issue #153",
 		in: `
 		Foo: {
-			listOfCloseds: [...Closed]
+			listOfCloseds: [...#Closed]
 		}
-		
-		Closed :: {
+
+		#Closed: {
 			a: int | *0
 		}
-		
+
 		Junk: {
 			b: 2
 		}
-		
+
 		Foo & {
 			listOfCloseds: [{
 				for k, v in Junk {
@@ -2635,7 +2636,7 @@
 			 }]
 		}
 		`,
-		out: `<0>{<1>{listOfCloseds: [_|_(<2>.v:field "b" not allowed in closed struct)]}, Foo: <3>{listOfCloseds: []}, Closed :: <4>C{a: 0}, Junk: <5>{b: 2}}`,
+		out: `<0>{<1>{listOfCloseds: [_|_(<2>.v:field "b" not allowed in closed struct)]}, Foo: <3>{listOfCloseds: []}, #Closed: <4>C{a: 0}, Junk: <5>{b: 2}}`,
 	}, {
 		desc: "label and field aliases",
 		in: `
@@ -2657,38 +2658,38 @@
 			`c: 5, ` +
 			`str: 5}`,
 	}, {
-		desc: "optionals with label fiters",
+		desc: "optionals with label filters",
 		in: `
-		JobID :: =~"^[a-zA-Z]*$"
-		Job :: {
+		#JobID: =~"^[a-zA-Z]*$"
+		#Job: {
 			name: string
 			cmd:  string
 		}
-		Jobs :: {
-			[JobID]: Job
+		#Jobs: {
+			[#JobID]: #Job
 			[=~"Test$"]: name: =~"^test" // Must work without ...
 		}
 
 		jobs: foo: name: "allGood"
 		jobs: foo: name: "allGood"
 
-		jobs1: Jobs
+		jobs1: #Jobs
 		jobs1: foo1: {} // faulty
 
-		jobs2: Jobs
+		jobs2: #Jobs
 		jobs2: fooTest: name: "badName" // faulty
 
-		jobs3: Jobs
-		jobs3: [string]: Job
+		jobs3: #Jobs
+		jobs3: [string]: #Job
 		jobs3: fooTest1: name: "badName" // faulty
 		`,
 		out: `<0>{` +
-			`JobID :: =~"^[a-zA-Z]*$", ` +
-			`Job :: <1>C{name: string, cmd: string}, ` +
-			`Jobs :: <2>C{[=~"^[a-zA-Z]*$"]: <3>(_: string)-><4>.Job, [=~"Test$"]: <5>(_: string)-><6>C{name: =~"^test"}, }, ` +
+			`#JobID: =~"^[a-zA-Z]*$", ` +
+			`#Job: <1>C{name: string, cmd: string}, ` +
+			`#Jobs: <2>C{[=~"^[a-zA-Z]*$"]: <3>(_: string)-><4>.#Job, [=~"Test$"]: <5>(_: string)-><6>C{name: =~"^test"}, }, ` +
 			`jobs: <7>{foo: <8>{name: "allGood"}}, ` +
 			`jobs1: _|_(<9>{}:field "foo1" not allowed in closed struct), ` +
-			`jobs2: <10>C{[=~"^[a-zA-Z]*$"]: <11>(_: string)-><4>.Job, [=~"Test$"]: <12>(_: string)-><13>C{name: =~"^test"}, fooTest: _|_(string:field "cmd" not allowed in closed struct)}, ` +
+			`jobs2: <10>C{[=~"^[a-zA-Z]*$"]: <11>(_: string)-><4>.#Job, [=~"Test$"]: <12>(_: string)-><13>C{name: =~"^test"}, fooTest: _|_(string:field "cmd" not allowed in closed struct)}, ` +
 			`jobs3: _|_(<14>{name: "badName"}:field "fooTest1" not allowed in closed struct)}`,
 	}, {
 		desc: "optionals in open structs",
@@ -2699,75 +2700,75 @@
 		B: {
 			[=~"^[m-z]*$"]: int
 		}
-		C :: {A & B}
-		c: C & { aaa: 3 }
+		#C: {A & B}
+		c: #C & { aaa: 3 }
 		`,
-		out: `<0>{A: <1>{[=~"^[a-s]*$"]: <2>(_: string)->int, }, B: <3>{[=~"^[m-z]*$"]: <4>(_: string)->int, }, C :: <5>C{[=~"^[a-s]*$"]: <6>(_: string)->int, [=~"^[m-z]*$"]: <7>(_: string)->int, }, c: <8>C{[=~"^[a-s]*$"]: <9>(_: string)->int, [=~"^[m-z]*$"]: <10>(_: string)->int, aaa: 3}}`,
+		out: `<0>{A: <1>{[=~"^[a-s]*$"]: <2>(_: string)->int, }, B: <3>{[=~"^[m-z]*$"]: <4>(_: string)->int, }, #C: <5>C{[=~"^[a-s]*$"]: <6>(_: string)->int, [=~"^[m-z]*$"]: <7>(_: string)->int, }, c: <8>C{[=~"^[a-s]*$"]: <9>(_: string)->int, [=~"^[m-z]*$"]: <10>(_: string)->int, aaa: 3}}`,
 	}, {
 		desc: "conjunction of optional sets",
 		in: `
-		A :: {
+		#A: {
 			[=~"^[a-s]*$"]: int
 		}
-		B :: {
+		#B: {
 			[=~"^[m-z]*$"]: int
 		}
 
-		C :: A & B
-		c: C & { aaa: 3 }
+		#C: #A & #B
+		c: #C & { aaa: 3 }
 
-		D :: {A & B}
-		d: D & { aaa: 3 }
+		#D: {#A & #B}
+		d: #D & { aaa: 3 }
 		`,
 		out: `<0>{` +
-			`A :: <1>C{[=~"^[a-s]*$"]: <2>(_: string)->int, }, ` +
-			`B :: <3>C{[=~"^[m-z]*$"]: <4>(_: string)->int, }, ` +
-			`C :: <5>C{(C{[=~"^[a-s]*$"]: <6>(_: string)->int} & C{[=~"^[m-z]*$"]: <7>(_: string)->int}), }, ` +
+			`#A: <1>C{[=~"^[a-s]*$"]: <2>(_: string)->int, }, ` +
+			`#B: <3>C{[=~"^[m-z]*$"]: <4>(_: string)->int, }, ` +
+			`#C: <5>C{(C{[=~"^[a-s]*$"]: <6>(_: string)->int} & C{[=~"^[m-z]*$"]: <7>(_: string)->int}), }, ` +
 			`c: _|_(3:field "aaa" not allowed in closed struct), ` +
-			`D :: <8>C{(C{[=~"^[a-s]*$"]: <9>(_: string)->int} & C{[=~"^[m-z]*$"]: <10>(_: string)->int}), }, ` +
+			`#D: <8>C{(C{[=~"^[a-s]*$"]: <9>(_: string)->int} & C{[=~"^[m-z]*$"]: <10>(_: string)->int}), }, ` +
 			`d: _|_(3:field "aaa" not allowed in closed struct)` +
 			`}`,
 	}, {
 		desc: "continue recursive closing for optionals",
 		in: `
-		S :: {
+		#S: {
 			[string]: { a: int }
 		}
-		a: S & {
+		a: #S & {
 			v: { b: int }
 		}
 		`,
-		out: `<0>{S :: <1>{[]: <2>(_: string)-><3>C{a: int}, }, a: <4>{[]: <5>(_: string)-><6>C{a: int}, v: _|_(int:field "b" not allowed in closed struct)}}`,
+		out: `<0>{#S: <1>{[]: <2>(_: string)-><3>C{a: int}, }, a: <4>{[]: <5>(_: string)-><6>C{a: int}, v: _|_(int:field "b" not allowed in closed struct)}}`,
 	}, {
 		desc: "augment closed optionals",
 		in: `
-		A :: {
+		#A: {
 			[=~"^[a-s]*$"]: int
 		}
-		B :: {
+		#B: {
 			[=~"^[m-z]*?"]: int
 		}
-		C :: {
-			A & B
+		#C: {
+			#A & #B
 			[=~"^Q*$"]: int
 		}
-		c: C & { QQ: 3 }
-		D :: {
-			A
-			B
+		c: #C & { QQ: 3 }
+		#D: {
+			#A
+			#B
 		}
-		d: D & { aaa: 4 }
+		d: #D & { aaa: 4 }
 		`,
 		out: `<0>{` +
-			`A :: <1>C{[=~"^[a-s]*$"]: <2>(_: string)->int, }, ` +
-			`B :: <3>C{[=~"^[m-z]*?"]: <4>(_: string)->int, }, ` +
-			`C :: <5>C{C{[=~"^Q*$"]: <6>(_: string)->int}, C{(C{[=~"^[a-s]*$"]: <7>(_: string)->int} & C{[=~"^[m-z]*?"]: <8>(_: string)->int})}, }, ` +
+			`#A: <1>C{[=~"^[a-s]*$"]: <2>(_: string)->int, }, ` +
+			`#B: <3>C{[=~"^[m-z]*?"]: <4>(_: string)->int, }, ` +
+			`#C: <5>C{C{[=~"^Q*$"]: <6>(_: string)->int}, C{(C{[=~"^[a-s]*$"]: <7>(_: string)->int} & C{[=~"^[m-z]*?"]: <8>(_: string)->int})}, }, ` +
 			`c: <9>C{C{[=~"^Q*$"]: <10>(_: string)->int}, C{(C{[=~"^[a-s]*$"]: <11>(_: string)->int} & C{[=~"^[m-z]*?"]: <12>(_: string)->int})}, QQ: 3}, ` +
-			`D :: <13>C{[=~"^[a-s]*$"]: <14>(_: string)->int, [=~"^[m-z]*?"]: <15>(_: string)->int, }, ` +
+			`#D: <13>C{[=~"^[a-s]*$"]: <14>(_: string)->int, [=~"^[m-z]*?"]: <15>(_: string)->int, }, ` +
 			`d: <16>C{[=~"^[a-s]*$"]: <17>(_: string)->int, [=~"^[m-z]*?"]: <18>(_: string)->int, aaa: 4}}`,
 	}, {
 		in: `
-		Task :: {
+		#Task: {
 			{
 				op:          "pull"
 				tag:         *"latest" | string
@@ -2779,21 +2780,21 @@
 			}
 		}
 
-		foo: Task & {"op": "pull"}
+		foo: #Task & {"op": "pull"}
 		`,
-		out: `<0>{Task :: (<1>C{op: "pull", tag: (*"latest" | string), refToTag: <1>.tag, tagExpr: (<1>.tag + "dd"), tagInString: ""+<1>.tag+""} | <2>C{op: "scratch"}), foo: <3>C{op: "pull", tag: "latest", refToTag: "latest", tagExpr: "latestdd", tagInString: "latest"}}`,
+		out: `<0>{#Task: (<1>C{op: "pull", tag: (*"latest" | string), refToTag: <1>.tag, tagExpr: (<1>.tag + "dd"), tagInString: ""+<1>.tag+""} | <2>C{op: "scratch"}), foo: <3>C{op: "pull", tag: "latest", refToTag: "latest", tagExpr: "latestdd", tagInString: "latest"}}`,
 	}, {
 		in: `
 		t: {
-			ok :: *true | bool
-			if ok {
+			#ok: *true | bool
+			if #ok {
 				x: int
 			}
 		}
 		s: t & {
-			ok :: false
+			#ok: false
 		}`,
-		out: `<0>{t: <1>{x: int, ok :: true}, s: <2>{ok :: false}}`,
+		out: `<0>{t: <1>{x: int, #ok: true}, s: <2>{#ok: false}}`,
 	}, {
 		desc: "cross-dependent comprehension",
 		// TODO(eval): fix: c should ultimately be allowed the struct. Current
@@ -2802,18 +2803,18 @@
 		// checks and allowing this would be more intuitive.
 		// Until that time, ensure that the behavior is at commutative.
 		in: `
-		a :: {
+		#a: {
 			if b {
 				c: 4
 			}
 			b: bool
 		}
-		x: (a & { b: true}) & {c: 4 }
+		x: (#a & { b: true}) & {c: 4 }
 		y: x
 		`,
 		// c should not be allowed, as it would break commutativiy.
 		// See comments above.
-		out: `<0>{x: _|_(4:field "c" not allowed in closed struct), y: _|_(4:field "c" not allowed in closed struct), a :: <1>C{b: bool if <2>.b yield <3>C{c: 4}}}`,
+		out: `<0>{x: _|_(4:field "c" not allowed in closed struct), y: _|_(4:field "c" not allowed in closed struct), #a: <1>C{b: bool if <2>.b yield <3>C{c: 4}}}`,
 	}, {
 		desc: "optional expanded before lookup",
 		in: `
@@ -2885,26 +2886,26 @@
 	}, {
 		desc: "alias reuse in nested scope",
 		in: `
-		Foo :: {
+		#Foo: {
 			let X = or([ for k, _ in {} { k } ])
 			connection: [X]: X
 		}
-		A :: {
+		#A: {
 			foo: "key"
 			let X = foo
 			a: foo: [X]: X
 		}
-		B :: {
+		#B: {
 			foo: string
 			let X = foo
 			a: foo: [X]: X
 		}
-		b: B & { foo: "key" }
+		b: #B & { foo: "key" }
 		`,
 		out: `<0>{` +
-			`Foo :: <1>C{connection: <2>C{[or ([ <3>for k, _ in <4>{} yield <3>.k ])]: <5>(_: string)->or ([ <3>for k, _ in <4>{} yield <3>.k ]), }}, ` +
-			`A :: <6>C{foo: "key", a: <7>C{foo: <8>C{["key"]: <9>(_: string)-><10>.foo, }}}, ` +
-			`B :: <11>C{foo: string, a: <12>C{foo: <13>C{[string]: <14>(_: string)-><15>.foo, }}}, ` +
+			`#Foo: <1>C{connection: <2>C{[or ([ <3>for k, _ in <4>{} yield <3>.k ])]: <5>(_: string)->or ([ <3>for k, _ in <4>{} yield <3>.k ]), }}, ` +
+			`#A: <6>C{foo: "key", a: <7>C{foo: <8>C{["key"]: <9>(_: string)-><10>.foo, }}}, ` +
+			`#B: <11>C{foo: string, a: <12>C{foo: <13>C{[string]: <14>(_: string)-><15>.foo, }}}, ` +
 			`b: <16>C{foo: "key", a: <17>C{foo: <18>C{["key"]: <19>(_: string)-><20>.foo, }}}` +
 			`}`,
 	}, {
@@ -2926,22 +2927,22 @@
 		package foobar
 
 		import yaml "encoding/yaml"
-	
-		Spec :: {
+
+		#Spec: {
 			_vars: {something: string}
 			data: {
-				foo :: {
+				#foo: {
 					use: _vars.something
 				}
 				baz:    yaml.Marshal(_vars.something)
-				foobar: yaml.Marshal(foo)
+				foobar: yaml.Marshal(#foo)
 			}
 		}
-		Val: Spec & {
+		Val: #Spec & {
 			_vars: something: "var-string"
 		}
 		`,
-		out: `<0>{Spec :: <1>C{_vars: <2>C{something: string}, data: <3>C{foo :: <4>C{use: string}, baz: <5>.Marshal (<6>._vars.something), foobar: <5>.Marshal (<7>.foo)}}, Val: <8>C{_vars: <9>C{something: "var-string"}, data: <10>C{foo :: <11>C{use: "var-string"}, baz: "var-string\n", foobar: "use: var-string\n"}}}`,
+		out: `<0>{#Spec: <1>C{_vars: <2>C{something: string}, data: <3>C{#foo: <4>C{use: string}, baz: <5>.Marshal (<6>._vars.something), foobar: <5>.Marshal (<7>.#foo)}}, Val: <8>C{_vars: <9>C{something: "var-string"}, data: <10>C{#foo: <11>C{use: "var-string"}, baz: "var-string\n", foobar: "use: var-string\n"}}}`,
 	}, {
 		desc: "detectIncompleteJSON",
 		in: `
@@ -2949,21 +2950,21 @@
 	
 			import "encoding/json"
 		
-			Spec :: {
+			#Spec: {
 				_vars: {something: string}
 				data: {
-					foo :: {
+					#foo: {
 						use: _vars.something
 					}
 					baz:    json.Marshal(_vars.something)
-					foobar: json.Marshal(foo)
+					foobar: json.Marshal(#foo)
 				}
 			}
-			Val: Spec & {
+			Val: #Spec & {
 				_vars: something: "var-string"
 			}
 			`,
-		out: `<0>{Spec :: <1>C{_vars: <2>C{something: string}, data: <3>C{foo :: <4>C{use: string}, baz: <5>.Marshal (<6>._vars.something), foobar: <5>.Marshal (<7>.foo)}}, Val: <8>C{_vars: <9>C{something: "var-string"}, data: <10>C{foo :: <11>C{use: "var-string"}, baz: "\"var-string\"", foobar: "{\"use\":\"var-string\"}"}}}`,
+		out: `<0>{#Spec: <1>C{_vars: <2>C{something: string}, data: <3>C{#foo: <4>C{use: string}, baz: <5>.Marshal (<6>._vars.something), foobar: <5>.Marshal (<7>.#foo)}}, Val: <8>C{_vars: <9>C{something: "var-string"}, data: <10>C{#foo: <11>C{use: "var-string"}, baz: "\"var-string\"", foobar: "{\"use\":\"var-string\"}"}}}`,
 	}, {
 		desc: "issue312",
 		in: `
@@ -2985,7 +2986,7 @@
 	}, {
 		desc: "issue318",
 		in: `
-		T :: {
+		#T: {
 			arg: x: string
 			out1: "\(arg.x) \(arg.y)"
 			out2: "\(arg.y)"
@@ -2994,7 +2995,7 @@
 		}
 		`,
 		out: `<0>{` +
-			`T :: <1>C{` +
+			`#T: <1>C{` +
 			`arg: <2>C{x: string}, ` +
 			`out1: _|_(<3>.arg.y:undefined field "y"), ` +
 			`out2: _|_(<3>.arg.y:undefined field "y"), ` +
@@ -3011,30 +3012,30 @@
 
 		x: {
 			s: "myname"
-			T
+			#T
 		}
 
-		T :: {
+		#T: {
 			s: string
 			out: template.Execute("{{.s}}", {
 				"s": s
 			})
 		}
 
-		V :: {
+		#V: {
 			s: string
 			out: json.Marshal({"s": s})
 		}
 
-		U :: {
+		#U: {
 			s: string
 			out: yaml.Marshal({"s": s})
 		}`,
 		out: `<0>{` +
-			`T :: <1>C{s: string, out: <2>.Execute ("{{.s}}",<3>C{s: <4>.s})}, ` +
-			`x: <5>C{s: "myname", out: "myname"}, ` +
-			`V :: <6>C{s: string, out: <7>.Marshal (<8>C{s: <9>.s})}, ` +
-			`U :: <10>C{s: string, out: <11>.Marshal (<12>C{s: <13>.s})}}`,
+			`x: <1>C{s: "myname", out: "myname"}, ` +
+			`#T: <2>C{s: string, out: <3>.Execute ("{{.s}}",<4>C{s: <5>.s})}, ` +
+			`#V: <6>C{s: string, out: <7>.Marshal (<8>C{s: <9>.s})}, ` +
+			`#U: <10>C{s: string, out: <11>.Marshal (<12>C{s: <13>.s})}}`,
 	}}
 	rewriteHelper(t, testCases, evalFull)
 }
diff --git a/cue/subsume_test.go b/cue/subsume_test.go
index e11681b..8925bd5 100644
--- a/cue/subsume_test.go
+++ b/cue/subsume_test.go
@@ -410,8 +410,8 @@
 		610: {subsumes: true, in: `a: {foo?:1}, b: close({})`},
 
 		// Definitions are not regular fields.
-		630: {subsumes: false, in: `a: {a :: 1}, b: {a: 1}`},
-		631: {subsumes: false, in: `a: {a: 1}, b: {a :: 1}`},
+		630: {subsumes: false, in: `a: {#a: 1}, b: {a: 1}`},
+		631: {subsumes: false, in: `a: {a: 1}, b: {#a: 1}`},
 
 		// Subsuming final values.
 		700: {subsumes: true, in: `a: {[string]: 1}, b: {foo: 1}`, mode: subFinal},
diff --git a/cue/types_test.go b/cue/types_test.go
index 0d9ddf9..4155fc1 100644
--- a/cue/types_test.go
+++ b/cue/types_test.go
@@ -435,8 +435,8 @@
 		value: `"Hello world!"`,
 		str:   `Hello world!`,
 	}, {
-		value: `"Hello \(world)!"
-		world :: "world"`,
+		value: `"Hello \(#world)!"
+		#world: "world"`,
 		str: `Hello world!`,
 	}, {
 		value: `string`,
@@ -564,8 +564,8 @@
 		value: `>=5*[1,2,3, ...int]`,
 		err:   "incomplete",
 	}, {
-		value: `[for x in y if x > 1 { x }]
-		y :: [1,2,3]`,
+		value: `[for x in #y if x > 1 { x }]
+		#y: [1,2,3]`,
 		res: "[2,3,]",
 	}, {
 		value: `[int]`,
@@ -615,11 +615,11 @@
 		value: `{_a:"a"}`,
 		res:   "{}",
 	}, {
-		value: `{ for k, v in y if v > 1 {"\(k)": v} }
-		y :: {a:1,b:2,c:3}`,
+		value: `{ for k, v in #y if v > 1 {"\(k)": v} }
+		#y: {a:1,b:2,c:3}`,
 		res: "{b:2,c:3,}",
 	}, {
-		value: `{ def :: 1, _hidden: 2, opt?: 3, reg: 4 }`,
+		value: `{ #def: 1, _hidden: 2, opt?: 3, reg: 4 }`,
 		res:   "{reg:4,}",
 	}, {
 		value: `{a:1,b:2,c:int}`,
@@ -1226,8 +1226,8 @@
 		dst:   intList(),
 		want:  *intList(1, 2, 3),
 	}, {
-		value: `[for x in y if x > 1 { x }]
-				y :: [1,2,3]`,
+		value: `[for x in #y if x > 1 { x }]
+				#y: [1,2,3]`,
 		dst:  intList(),
 		want: *intList(2, 3),
 	}, {
@@ -1273,20 +1273,20 @@
 	}, {
 		desc: "definition error",
 		in: `
-			b :: 1 & 2
+			#b: 1 & 2
 			`,
 		opts: []Option{},
 		err:  true,
 	}, {
 		desc: "definition error okay if optional",
 		in: `
-			b? :: 1 & 2
+			#b?: 1 & 2
 			`,
 		opts: []Option{},
 	}, {
 		desc: "definition with optional",
 		in: `
-			b:: {
+			#b: {
 				a: int
 				b?: >=0
 			}
@@ -1348,10 +1348,10 @@
 	}, {
 		desc: "ignore optional in schema",
 		in: `
-		Schema1 :: {
+		#Schema1: {
 			a?: int
 		}
-		instance1: Schema1
+		instance1: #Schema1
 		`,
 		opts: []Option{Concrete(true)},
 	}, {
@@ -2068,7 +2068,7 @@
 		json: `{"a":1,"b":1,"c":2,"d":1,"e":1,"f":1.1}`,
 	}, {
 		value: `
-		Task :: {
+		#Task: {
 			{
 				op:          "pull"
 				tag:         *"latest" | string
@@ -2078,7 +2078,7 @@
 			}
 		}
 
-		foo: Task & {"op": "pull"}
+		foo: #Task & {"op": "pull"}
 		`,
 		json: `{"foo":{"op":"pull","tag":"latest","tagInString":"latestdd"}}`,
 	}, {
@@ -2266,7 +2266,7 @@
 		input: "v: w: x: w.a.b.c, v: w: a: b: c: 1",
 		want:  "v w a b c",
 	}, {
-		input: `v: w: x: w.a.b.c, v: w: a: b: c: 1, D :: 3, opt?: 3, "v\(D)": 3, X: {a: 3}, X`,
+		input: `v: w: x: w.a.b.c, v: w: a: b: c: 1, #D: 3, opt?: 3, "v\(#D)": 3, X: {a: 3}, X`,
 		want:  "v w a b c",
 	}, {
 		input: `v: w: x: w.a[bb]["c"], v: w: a: b: c: 1, bb: "b"`,
@@ -2358,28 +2358,28 @@
 		want: "T",
 	}, {
 		input: `
-			a :: {
-				T :: {b: 3}
-				close({}) | close({c: T}) | close({d: string})
+			#a: {
+				#T: {b: 3}
+				close({}) | close({c: #T}) | close({d: string})
 			}
 			`,
 		lookup: func(i *Instance) Value {
-			f, _ := i.LookupField("a")
+			f, _ := i.LookupField("#a")
 			_, a := f.Value.Expr() // &
 			_, a = a[1].Expr()     // |
 			return a[1].Lookup("c")
 		},
-		want: "a.T",
+		want: "#a.#T",
 	}, {
 		input: `
 		package foo
 
-		Struct :: {
-			T :: int
+		#Struct: {
+			#T: int
 
-			{b?: T}
+			{b?: #T}
 		}`,
-		want: "Struct.T",
+		want: "#Struct.#T",
 		lookup: func(inst *Instance) Value {
 			// Locate Struct
 			i, _ := inst.Value().Fields(Definitions(true))
@@ -2398,17 +2398,17 @@
 		input: `
 		package foo
 
-		A :: B :: T
+		#A: #B: #T
 
-		T :: {
-			a: S.U
-			S :: U:: {}
+		#T: {
+			a: #S.#U
+			#S: #U: {}
 		}
 		`,
-		want: "T.S.U",
+		want: "#T.#S.#U",
 		lookup: func(inst *Instance) Value {
-			f, _ := inst.Value().LookupField("A")
-			f, _ = f.Value.LookupField("B")
+			f, _ := inst.Value().LookupField("#A")
+			f, _ = f.Value.LookupField("#B")
 			v := f.Value
 			v = Dereference(v)
 			v = v.Lookup("a")
@@ -2418,17 +2418,17 @@
 		input: `
 		package foo
 
-		A :: B :: T
+		#A: #B: #T
 
-		T :: {
-			a: [...S]
-			S :: {}
+		#T: {
+			a: [...#S]
+			#S: {}
 		}
 		`,
-		want: "T.S",
+		want: "#T.#S",
 		lookup: func(inst *Instance) Value {
-			f, _ := inst.Value().LookupField("A")
-			f, _ = f.Value.LookupField("B")
+			f, _ := inst.Value().LookupField("#A")
+			f, _ = f.Value.LookupField("#B")
 			v := f.Value
 			v = Dereference(v)
 			v, _ = v.Lookup("a").Elem()
@@ -2436,18 +2436,18 @@
 		},
 	}, {
 		input: `
-		A :: {
-			b: T
+		#A: {
+			b: #T
 		}
 
-		T :: {
-			a: S
-			S :: {}
+		#T: {
+			a: #S
+			#S: {}
 		}
 		`,
-		want: "T.S",
+		want: "#T.#S",
 		lookup: func(inst *Instance) Value {
-			f, _ := inst.Value().LookupField("A")
+			f, _ := inst.Value().LookupField("#A")
 			v := f.Value.Lookup("b")
 			v = Dereference(v)
 			v = v.Lookup("a")
@@ -2461,22 +2461,22 @@
 		// This could perhaps be made fixed with dereferencing as well.
 		skip: true,
 		input: `
-		Tracing :: {
-			T :: { address?: string }
-			S :: { ip?: string }
+		#Tracing: {
+			#T: { address?: string }
+			#S: { ip?: string }
 
 			close({}) | close({
-				t: T
+				t: #T
 			}) | close({
 				s: S
 			})
 		}
-		X :: {}
-		X // Disconnect top-level struct from the one visible by close.
+		#X: {}
+		#X // Disconnect top-level struct from the one visible by close.
 		`,
 		want: "",
 		lookup: func(inst *Instance) Value {
-			f, _ := inst.Value().LookupField("Tracing")
+			f, _ := inst.Value().LookupField("#Tracing")
 			v := f.Value.Eval()
 			_, args := v.Expr()
 			v = args[1].Lookup("t")
diff --git a/doc/ref/impl.md b/doc/ref/impl.md
index ca38ef2..b7c4260 100644
--- a/doc/ref/impl.md
+++ b/doc/ref/impl.md
@@ -233,8 +233,8 @@
 
 Alternatively: use Haskell's approach:
 
-a :: MyStruct // define a to be MyStruct any other features are allowed but
-              // discarded from the model. Unused features are an error.
+#a: MyStruct // define a to be MyStruct any other features are allowed but
+             // discarded from the model. Unused features are an error.
 
 Let's first try to see if we can get away with static usage analysis.
 A variant would be to define appropriate features unconditionally, but enforce
