Description
permutation Applicative and Monad with many mtl instances.
Description
Based on "Parsing Permutation Phrases", by Arthur Baars, Andres Loeh and S. Doaitse Swierstra, Haskell Workshop 2001. The implementation given here does not include explicit optional actions, and instead implements Alternative
and MonadPlus
. m <*> (lift n <|> pure a)
should be used where addOpt m a n
would be used.