Why does Parsec not use Control.Applicative operators
alternative-functor, haskell, parsec
Solution
It's for historic reasons. The Parsec library predates the discovery of applicative functors and so it wasn't designed with them in mind. And I guess no one has taken the time to update Parsec to use `Control.Applicative`. There is no deep fundamental reason for not doing it.
Problem
Using `Control.Applicative` is very useful with Parsec, but you need to always hide `<|>` and similar objects as they conflict with Parsec's own: ``` import Control.Applicative hiding ((<|>), many, optional) import Text.Parsec.Combinator import Text.Parsec ``` Alternatively, as Antal S-Z points out, you can hide the Parsec version. However, as far as I can tell, this seems like an unnecessary restriction. Why did parsec not simply implement these operators from Applicative?