Arbitrary-rank polymorphism examples labels could cause unnecessary doubt for beginners
Summary
This is a suggestion to rename f4 to anything else, say h or h1, in the "Arbitrary-rank polymorphism" example.
The examples are labeled in such a way that the ones that end with 1 are rank 1, the ones that end with 2 are rank 2, the ones that end with 3 are rank 3.
And then there's f4 that is just a slightly obtuse rank 1 type for the sake of demonstrating that right nesting is valid syntax. The 4 could mislead a beginner into considering whether f4 is a rank 4 type.