On Fri, Jun 10, 2016 at 05:37:41PM +0300, Юрий Сыровецкий (Yuriy Syrovetskiy) wrote: > It is so because in base library > > asum = foldr (<|>) empty > > What if it was defined > > asum [] = empty > asum [x:xs] = x <|> asum xs Those are the same (assuming you mean (x:xs) instead of [x:xs]). Tom