Typechecker gets structs, enums, match, pats, generics, and inference.