let leaf k = norm (Leaf k)
(* To enforce the invariant that a branch contains two non empty sub-trees *)
let branch_ne = function
| (_,_,e,t) when is_empty e -> t
| (_,_,t,e) when is_empty e -> t
let leaf k = norm (Leaf k)
(* To enforce the invariant that a branch contains two non empty sub-trees *)
let branch_ne = function
| (_,_,e,t) when is_empty e -> t
| (_,_,t,e) when is_empty e -> t