It's not just the number of * or -> that matter, but how they are nested. The most basic form of the kind language contains only * (or Type in more modern Haskell I suspect we'll eventually move away from *) and ->.īut there are more things you can build with that language than you can express by just 'counting the number of *s'.