data Tree a = Leaf | Branch (Tree a) a (Tree a) t = Branch Leaf "bar" Leaf case t of Branch l k r -> k
data Tree a = Leaf
| Branch {left::Tree a, key::a, right::Tree a }
t = Branch {left=Leaf,key="bar",right=Leaf}
case t of Branch {} -> key t
Branch {left=Leaf,key="bar"
,right=Branch Leaf "foo" Leaf}