The classification about Levels of Abstraction is really great.
With respect to Applicative and Monad in particular, there are just two levels to be concerned with. The first is the level of implementing various Applicative and Monad instances, i.e. the “raw Haskell” level.
Once we have an Applicative instance for a type like Parser, the point is that we get to “move up a layer” and program with Parsers using the Applicative interface, without thinking about the details of how Parser and its Applicative instance are actually implemented.
The powerful Type system of Haskell makes it really suitable to create Levels of Abstraction,
which is usually very verbose or even impossible in other static typed programming languages.