The reason GHC won't infer the definition of Applicative is because there can be multiple valid `Applicative` instances for a type (unlike `Functor` where there is a unique (non-trivial) instance).
The canonical example of this is lists, with 2 valid instances of `Applicative`.
The author of the post seems to have this realization, but I wanted to call it out, just in case.
The canonical example of this is lists, with 2 valid instances of `Applicative`.
The author of the post seems to have this realization, but I wanted to call it out, just in case.