generalize reserved type checking