Я новичок в Haskell и учусь на "Learn You a Haskell".
Есть кое-что, чего я не понимаю в реализации Tree Foldable.
instance F.Foldable Tree where
foldMap f Empty = mempty
foldMap f (Node x l r) = F.foldMap f l 'mappend'
f x 'mappend'
F.foldMap f r
Цитата из LYAH: "Так что, если мы просто реализуем foldMap для некоторого типа, мы получим foldr и foldl для этого типа бесплатно !".
Может кто-нибудь объяснить это? Я не понимаю, как и почему я получаю foldr и foldl бесплатно прямо сейчас...