That is, the restricted type checker should only be used in the matching/unification step. fixes #583