use pattern type instead of subterm type to find remaining constructors because it might have applied GADT type parameters (closes #2778)