diff --git a/docs/TypeChecker.md b/docs/TypeChecker.md index 59eca31de8c43..2a7873ee1fc0a 100644 --- a/docs/TypeChecker.md +++ b/docs/TypeChecker.md @@ -252,7 +252,7 @@ expression, and each different kind of expression---function application, member access, etc.---generates a specific set of constraints. Here, we enumerate the primary expression kinds in the language and describe the type assigned to the expression and the -constraints generated from such as expression. We use `T(a)` to +constraints generated from such an expression. We use `T(a)` to refer to the type assigned to the subexpression `a`. The constraints and types generated from the primary expression kinds are: @@ -631,9 +631,9 @@ on the type variable are categorized. Given a relational constraint of the form `A` is some concrete type, `A` is said to be "above" `T0`. Similarly, given a constraint of the form `B B` in the latter if `A` is convertible to `B`. `B` would +`A -> B` in the lattice if `A` is convertible to `B`. `B` would therefore be higher in the lattice than `A`, and the topmost element of the lattice is the element to which all types can be converted, `Any` (often called "top"). @@ -764,7 +764,7 @@ checking problem:: ``` This constraint system generates the constraints "`T(f)` ==Fn `T0 -> T1`" (for fresh variables `T0` and `T1`), "`(T2, X)