# File lib/safe_yaml/resolver.rb, line 30
    def resolve_map(node)
      tag  = get_and_check_node_tag(node)
      hash = @initializers.include?(tag) ? @initializers[tag].call : {}
      map  = normalize_map(self.get_node_value(node))

      # Take the "<<" key nodes first, as these are meant to approximate a form of inheritance.
      inheritors = map.select { |key_node, value_node| resolve_node(key_node) == "<<" }
      inheritors.each do |key_node, value_node|
        merge_into_hash(hash, resolve_node(value_node))
      end

      # All that's left should be normal (non-"<<") nodes.
      (map - inheritors).each do |key_node, value_node|
        hash[resolve_node(key_node)] = resolve_node(value_node)
      end

      return hash
    end