refactor type checking predicate list to an assoc array