def CAN(message1, *messages)
      messages = [message1, *messages]
      unless messages.all?{|s|
                [Symbol, String].any?{|klass|s.kind_of? klass}
              }
        raise TypeError, 'only Symbol or String for message'
      end

      ->v{
        messages.all?{|message|v.respond_to? message}
      }
    end
def CAN(message1, *messages)
      messages = [message1, *messages]
      unless messages.all?{|s|
                [Symbol, String].any?{|klass|s.kind_of? klass}
              }
        raise TypeError, 'only Symbol or String for message'
      end

      ->v{
        messages.all?{|message|v.respond_to? message}
      }
    end
A condition builder.
 @param messages [Symbol, String]
 @return [lambda]
   this lambda return true if a argment respond to all messages