it now recovers from (most) errors and always returns a type, so that isSubSing doesn't have to recalculate it it already assumed the inputs had the same type. now it just leans on that assumption harder
hey what would happen if some idiot tried to weld qtt and xtt together? let's find out together