Skip to content

Commit f0274a8

Browse files
committed
way too foldable
1 parent 179eb47 commit f0274a8

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

foldable.hs

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import qualified Data.Foldable as F
2+
3+
data Tree a = Empty | Node a (Tree a) (Tree a)
4+
deriving (Show, Read, Eq)
5+
6+
instance F.Foldable Tree where
7+
foldMap f Empty = mempty
8+
foldMap f (Node x l r) = F.foldMap f l `mappend`
9+
f x `mappend`
10+
F.foldMap f r
11+
12+
aTree :: Tree Int
13+
aTree = Node 5
14+
(Node 3
15+
(Node 1 Empty Empty)
16+
(Node 6 Empty Empty)
17+
)
18+
(Node 9
19+
(Node 8 Empty Empty)
20+
(Node 10 Empty Empty)
21+
)

0 commit comments

Comments
 (0)