more robust annotation checking in ast/adt reflection