def [](key)
      return super(key) if key.is_a?(Numeric)

      trees.lazy.each do |tree|
        result = tree[key]
        return result unless result.nil?
        break if tree.prefix?(key)
      end
      nil
    end
def [](key)
      return super(key) if key.is_a?(Numeric)

      trees.lazy.each do |tree|
        result = tree[key]
        return result unless result.nil?
        break if tree.prefix?(key)
      end
      nil
    end
For a numeric key, return the n:th tree in the forest

 For a key path convertable key, return the closest match in the forest

 When a closer tree contains a prefix of the key, this shadows any
 key path matches in trees further away, returning nil. This preserves
 the constraints that only leaves may contain a value.