clean typechecking (without passing mirrors)