sig
type 'a bintree = Leaf | Node of 'a Trees.bintree * 'a * 'a Trees.bintree
val tree_count : 'a Trees.bintree -> int
val tree_sum : int Trees.bintree -> int
val tree_mem : 'a -> 'a Trees.bintree -> bool
val tree_preorder : 'a Trees.bintree -> 'a list
val tree_inorder : 'a Trees.bintree -> 'a list
val tree_postorder : 'a Trees.bintree -> 'a list
val tree_fold : 'a -> ('b -> 'a -> 'a -> 'a) -> 'b Trees.bintree -> 'a
val tree_count_fold : 'a Trees.bintree -> int
val tree_sum_fold : int Trees.bintree -> int
val tree_mem_fold : 'a -> 'a Trees.bintree -> bool
val tree_preorder_fold : 'a Trees.bintree -> 'a list
val tree_inorder_fold : 'a Trees.bintree -> 'a list
val tree_postorder_fold : 'a Trees.bintree -> 'a list
end