<p>Representing types like this is great for diagnostics, because the
user-specified type is always immediately available. There are two problems
with this: first, various semantic checks need to make judgements about the
-<em>structure</em> of a type, not its structure. Second, we need an efficient
-way to query whether two types are structurally identical to each other,
-ignoring typedefs. The solution to both of these problems is the idea of
+<em>actual structure</em> of a type, ignoring typdefs. Second, we need an
+efficient way to query whether two types are structurally identical to each
+other, ignoring typedefs. The solution to both of these problems is the idea of
canonical types.</p>
<h4>Canonical Types</h4>