Haskell - Para que serve o Control.Applicative.Alternative?

Eu estava olhando para oApplicative nas bibliotecas Haskell e tropeçou emAlternative.

Para que serve esta classe? Uma pesquisa no google não revelou nada particularmente interessante. E parece estar completamente fora de lugar, agrupado como está no pacote de aplicativo

Alguém poderia postar um cenário possível em que você usaria essa class