code: function Prompt(question, answers, ui) {
    debug('initializing from <%s>', __filename);
  
    if (!question) {
      throw new TypeError('expected question to be a string or object');
    }
  
    if (!(this instanceof Prompt)) {
      var proto = Object.create(Prompt.prototype);
      Prompt.apply(proto, arguments);
      return proto;
    }
  
    Emitter.call(this);
    if (!(question instanceof Question)) {
      question = new Question(question);
    }
  
    this.question = this.options = question;
    this.answers = answers || {};
    this.context = {};
    this.contextHistory = [];
    this.actions = new Actions(this);
  
    if (typeof this.options.limit !== 'number') {
      this.options.limit = this.options.radio ? 9 : 7;
    }
  
    this.ui = ui || UI.create(this.options);
    this.rl = this.ui.rl;
    this.errorMessage = log.red('>> invalid input');
    this.onError = this.onError.bind(this);
    this.status = 'pending';
    this.session = false;
    this.position = 0;
    this.called = 0;
    this.state = true;
    this.ui.rl.pause();
    this.initListeners();
  }
docs: Create a new Prompt with the given `question` object, `answers` and optional instance
  of [readline-ui][].
  
  ```js
  var prompt = new Prompt({
  name: 'color',
  message: 'What is your favorite color?'
  });
  
  prompt.ask(function(answer) {
  console.log(answer);
  //=> 'blue'
  });
  ```
  @param {Object} `question` Plain object or instance of [prompt-question][].
  @param {Object} `answers` Optionally pass an answers object from a prompt manager (like [enquirer][]).
  @param {Object} `ui` Optionally pass an instance of [readline-ui][]. If not passed, an instance is created for you.
  @api public