root, children, size
leaves
functor
unSum and unProduct
monoid Sum and Product
Rose fold
foldMap
fsum , fproduct