diff --git a/src/appendix/glossary.md b/src/appendix/glossary.md
index 7910fdf26d25d..ee3a3a720a4d6 100644
--- a/src/appendix/glossary.md
+++ b/src/appendix/glossary.md
@@ -94,6 +94,7 @@ Term | Meaning
upvar | A variable captured by a closure from outside the closure.
variance | Determines how changes to a generic type/lifetime parameter affect subtyping; for example, if `T` is a subtype of `U`, then `Vec` is a subtype `Vec` because `Vec` is *covariant* in its generic parameter. See [the background chapter](./background.md#variance) for a more general explanation. See the [variance chapter](../variance.md) for an explanation of how type checking handles variance.
variant index | In an enum, identifies a variant by assigning them indices starting at 0. This is purely internal and not to be confused with the ["discriminant"](#discriminant) which can be overwritten by the user (e.g. `enum Bool { True = 42, False = 0 }`).
+Well-formedness | Semantically:An expression that evaluates to meaningful result. In Type Systems: A type related construct which follows rules of the type system.
wide pointer | A pointer with additional metadata. See "fat pointer" for more.
ZST | Zero-Sized Type. A type whose values have size 0 bytes. Since `2^0 = 1`, such types can have exactly one value. For example, `()` (unit) is a ZST. `struct Foo;` is also a ZST. The compiler can do some nice optimizations around ZSTs.