Foldr / Foldl kostenlos, wenn Tree Foldable Foldmap implementiert?
Ich bin Anfänger bei einem Haskell und lerne von "Learn You a Haskell". Ich verstehe etwas nicht über die Tree-Implementierung von 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
Zitat aus: LYOH: "Wenn wir foldMap also nur für einen Typ implementieren, erhalten wirFoldr und Foldl auf diesen Typ kostenlos! "
Kann das jemand erklären? Ich verstehe nicht warum und wie ich jetzt kostenlos foldr und foldl bekomme.