def dig(index, *remaining_indeces)
    item = self[index]
    return item if remaining_indeces.empty? || item.nil?

    raise TypeError, "#{item.class} does not have #dig method" unless item.respond_to?(:dig)