def pos *indexes
      indexes = preprocess_range(indexes.first) if indexes.first.is_a? Range

      if indexes.size == 1
        numeric_pos indexes.first
      else
        indexes.map { |index| numeric_pos index }
      end
    end
def pos *indexes
      indexes = preprocess_range(indexes.first) if indexes.first.is_a? Range

      if indexes.size == 1
        numeric_pos indexes.first
      else
        indexes.map { |index| numeric_pos index }
      end
    end
Returns positions given indexes or positions
 @note If the arugent is both a valid index and a valid position,
   it will treated as valid index
 @param indexes [Array<object>] indexes or positions
 @example
   x = Daru::Index.new [:a, :b, :c]
   x.pos :a, 1
   # => [0, 1]