def initialize index, opts={}
      index = guess_index index
      @relation_hash = index.each_with_index.to_h.freeze
      @keys = @relation_hash.keys
      @size = @relation_hash.size
      @name = opts[:name]
    end
@example

idx = Daru::Index.new [:one, 'one', 1, 2, :two]
=> #<Daru::Index(5): {one, one, 1, 2, two}>

# set the name

idx.name = "index_name"
=> "index_name"

idx
=> #<Daru::Index(5): index_name {one, one, 1, 2, two}>

# set the name during initialization

idx = Daru::Index.new [:one, 'one', 1, 2, :two], name: "index_name"
=> #<Daru::Index(5): index_name {one, one, 1, 2, two}>