#maoe さん、ありがとうございます。
#cabal install 'parsec > 3'
した後に
#インストールするすべてのパッケージで
#cabal install --preference='parsec > 3' XXX
#としていけばできると分かりました。
#nobsun さん、ありがとございます。
#comparing を使っていたので、難しく考え過ぎていました。
#sortBy (flips (comparing snd))
#でやりたいことができました。
#強引に双方向畳み込み fold を mapAccumL で書きました。
#fold f (a,c) xs = (aa,cc) where
((aa,_), ~(cc:cs)) = mapAccumL g (a,cs++[c]) xs
g (a, ~(c':cs)) x = ((a',cs), c'') where
(a',c'') = f (a,c') x