addToFM_C combiner (Branch key elt size fm_l fm_r) new_key new_elt
= case compare new_key key of
LT -> mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
GT -> mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
EQ -> Branch new_key (combiner elt new_elt) size fm_l fm_r
addToFM_C combiner (Branch key elt size fm_l fm_r) new_key new_elt
= case compare new_key key of
LT -> mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
GT -> mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
EQ -> Branch new_key (combiner elt new_elt) size fm_l fm_r