struct Pointer(T)
  def +(other : Int)
    self + other.to_i64
  end
  def [](offset : Int) : T
    self.value
  end
  def []=(offset : Int, value : T)
    (self + offset).value = value
  end
end

Fix [] operator on Pointer(T)
struct Pointer(T)
  def +(other : Int)
    self + other.to_i64
  end
  def [](offset : Int) : T
    (self + offset).value
  end
  def []=(offset : Int, value : T)
    (self + offset).value = value
  end
end