diff --git a/cue/types.go b/cue/types.go
index 6ca8760..e71ab71 100644
--- a/cue/types.go
+++ b/cue/types.go
@@ -35,12 +35,11 @@
 // Kind determines the underlying type of a Value.
 type Kind int
 
-const (
-	// BottomKind is the error value.
-	BottomKind Kind = 1 << iota
+const BottomKind Kind = 0
 
+const (
 	// NullKind indicates a null value.
-	NullKind
+	NullKind Kind = 1 << iota
 
 	// BoolKind indicates a boolean value.
 	BoolKind
diff --git a/cue/types_test.go b/cue/types_test.go
index 764228a..ca16b49 100644
--- a/cue/types_test.go
+++ b/cue/types_test.go
@@ -194,10 +194,6 @@
 			if got := v.IncompleteKind(); got != want {
 				t.Errorf("IncompleteKind: got %x; want %x", got, want)
 			}
-			incomplete := tc.incompleteKind != tc.kind
-			if got := v.IsIncomplete(); got != incomplete {
-				t.Errorf("IsIncomplete: got %v; want %v", got, incomplete)
-			}
 			if got := v.IsConcrete(); got != tc.concrete {
 				t.Errorf("IsConcrete: got %v; want %v", got, tc.concrete)
 			}
@@ -772,7 +768,7 @@
 		// 	length: "2",
 	}, {
 		input:  "3",
-		length: "_|_(len not supported for type 8)", // TODO: fix kind name
+		length: "_|_(len not supported for type 4)", // TODO: fix kind name
 	}}
 	for _, tc := range testCases {
 		t.Run(tc.input, func(t *testing.T) {
diff --git a/encoding/openapi/build.go b/encoding/openapi/build.go
index 8d690d1..5fee0a5 100644
--- a/encoding/openapi/build.go
+++ b/encoding/openapi/build.go
@@ -498,7 +498,7 @@
 		return
 	}
 
-	switch v.IncompleteKind() &^ cue.BottomKind {
+	switch v.IncompleteKind() {
 	case cue.BoolKind:
 		b.typ = "boolean"
 	case cue.FloatKind, cue.NumberKind:
@@ -522,7 +522,7 @@
 		return
 	}
 
-	switch v.IncompleteKind() &^ cue.BottomKind {
+	switch v.IncompleteKind() {
 	case cue.NullKind:
 		// TODO: for JSON schema we would set the type here. For OpenAPI,
 		// it must be nullable.
diff --git a/encoding/openapi/crd.go b/encoding/openapi/crd.go
index 28b935f..a6ed8a3 100644
--- a/encoding/openapi/crd.go
+++ b/encoding/openapi/crd.go
@@ -116,7 +116,7 @@
 		b.format = format
 	} else {
 		v = v.Eval()
-		b.kind = v.IncompleteKind() &^ cue.BottomKind
+		b.kind = v.IncompleteKind()
 
 		switch b.kind {
 		case cue.StructKind:
diff --git a/pkg/tool/file/file.go b/pkg/tool/file/file.go
index b64a64d..694f832 100644
--- a/pkg/tool/file/file.go
+++ b/pkg/tool/file/file.go
@@ -54,7 +54,7 @@
 	}
 	update := map[string]interface{}{"contents": b}
 
-	switch v.Lookup("contents").IncompleteKind() &^ cue.BottomKind {
+	switch v.Lookup("contents").IncompleteKind() {
 	case cue.BytesKind:
 	case cue.StringKind:
 		update["contents"] = string(b)
