ruby初心者です。

クラスインスタンス変数について勉強しております。
class << self; endで定義した@valですが、
クラスの先頭で定義した@val = 10とは違うインスタンスのようです。

class << クラス名; end はクラスメソッドを定義するイディオムである
認識なので、@valはクラスインスタンス変数であると思うのですが違うのでしょうか

class Ins
  @val = 10

  def foo
    @val
  end

  class << self
    @val = 15 #=> クラスインスタンス変数を参照しているようにみえる

    def bazz
      @val
    end
  end
end

class << Ins
  # puts self.bazz NoMethodErrorが発生する
  puts @val #=> ここでは15が出力される
end

puts Ins.bazz #=> ここでは10が出力される