first-class polymorphism beats rank-2 polymorphism