Finish the typer (almost, haven't checked against the spec yet)

Should be lhs. I think this could make a difference when assigning null (our only type coercion)?