code: function Indeed () {
    // Setup initial values
    Base.apply(this, arguments);
    var self = this;
    this.calls = ['indeed'];
    this.previous = [];
    this.canChainComparisons = true;
  
    // Define getters for grouping
    _.each(['And', { name: 'But', join: 'and' }, 'Or', 'Xor'], function(getter) {
      var name = typeof getter === 'string' ? getter : getter.name;
      var join = typeof getter === 'string' ? name.toLowerCase() : getter.join;
      self.__defineGetter__(name, function() {
        self.previous.push({ val: self.test(true), join: join });
        self.calls = [];
        return self;
      });
    });
  
    // Define some additional getters that do nother except return self,
    // so that chaining sounds more natural.
    _.each(['andDoes', 'andShould', 'andHas', 'andHave', 'andIs', 'andTo', 'andBe'], function(getter) {
      self.__defineGetter__(getter, function() {
        return self;
      });
    });
  }
docs: Indeed
  
  @constructor
  @param {*} condition - The condition to be evaluated
  @param {boolean} negate - Whether to negate the current expression