Starting to split type checking into two phases