http://www.haskell.org/pipermail/beginners/2013-March/011550.html
Похуй манатки, ясно как запилить.
Какой лучше применить комбинатор на замену явной рекурсии?
У меня получилось так:
fix (\r s -> let (a::String, b::String, c::String) = s =~ "[A-E]" in if null s then s else a++(map toLower b)++(r c))
Но это как-то уебищно.
inb4 map (\c -> if isJust (find (== c) ['A'..'E']) then toLower c else c)