class Steep::Interface::Block

def subst(s)

def subst(s)
  ty = type.subst(s)
  st = self_type.subst(s) if self_type
  if ty == type && st == self_type
    self
  else
    self.class.new(type: ty, self_type: st, optional: optional)
  end
end