class Steep::Interface::IvarChain

def ==(other)

def ==(other)
  other.is_a?(IvarChain) &&
    type == type &&
    parent == parent
end

def initialize(type:, parent: nil)

def initialize(type:, parent: nil)
  @type = type
  @parent = parent
end

def subst(s)

def subst(s)
  self.class.new(
    type: type.subst(s),
    parent: parent&.subst(s)
  )
end