a-foundation/src/main/java/com/ajjpj/afoundation/collection/immutable/ABTreeMap.java
@SuppressWarnings ("unchecked")
    public ABTreeMap<K,V> updated (K key, V value) {
        final UpdateResult result = _updated (key, value);

        if (result.optRight == null) {
            return result.left;
        }

        // This is the only place where the tree depth can grow.
        // The 'minimum number of children' constraint does not apply to root nodes.
        return new IndexNode (spec, new Object[] {result.separator}, new ABTreeMap[] {result.left, result.optRight});
    }
@SuppressWarnings ("unchecked")
    public ABTreeMap<K,V> updated (K key, V value) {
        final UpdateResult result = _updated (key, value);

        if (result.optRight == null) {
            return result.left;
        }

        // This is the only place where the tree depth can grow.
        // The 'minimum number of children' constraint does not apply to root nodes.
        return new IndexNode (spec, new Object[] {result.separator}, new ABTreeMap[] {result.left, result.optRight});
    }
public Iterable<V> values (K keyMin, K keyMax);