# File htree/loc.rb, line 7
    def initialize(base, *rest)
      case base
      when Loc
        if rest.length != 1
          raise ArgumentError, "not index argument: #{rest[0].inspect}"
        end
        index, = rest
        @parent = base
        @index = index
        @node = @parent.node.get_subnode(@index)
      when Node
        if rest.length != 0
          raise ArgumentError, "extra argument: #{rest.inspect}"
        end
        @parent = nil
        @index = nil
        @node = base
      else
        raise TypeError, "invalid base argument: #{base.inspect}"
      end
      extend @node.class::LocMixin if @node != nil
    end