public TreeSet <v> Delete(v value) => New(_ord, WBT <v> .Delete(WBT <v> .MkComp(_ord, value), _tree));
public TreeSet <v> Insert(v value) => New(_ord, WBT <v> .Insert(WBT <v> .MkComp(_ord, value), value, _tree));
public TreeMap <k, v> Alter(k key, Func <Opt <v>, Opt <v> > f) => New(_ord, Alter(WBT <k> .MkComp(_ord, key), key, f, _tree));
public bool Contains(v value) => WBT <v> .Lookup(WBT <v> .MkComp(_ord, value), _tree).IsSome();
public Opt <v> Lookup(k key) => WBT <Pair <k, v> > .Lookup(WBT <k> .MkComp(_ord, key).CoMap <Pair <k, v>, k, Ord>(Dtors.Left), _tree).Map(kv => kv.Right());