Functions, mappings, and bound variables
Read an input-output contract and distinguish free inputs from names bound inside its rule.
Which names belong to the function contract, and which are local to an operator?
Assign a provisional mathematical type to each important object.
Check whether the operation is valid for the stated types and shapes.
Use a type or shape mismatch to locate a reading error.