class Steep::Interface::Block

def +(other)

def +(other)
  optional = self.optional? || other.optional?
  type = AST::Types::Proc.new(params: self.type.params | other.type.params,
                              return_type: AST::Types::Union.build(types: [self.type.return_type,
                                                                           other.type.return_type]))
  self.class.new(
    type: type,
    optional: optional
  )
end