code: function all(obj, predicates) {
      check.verify.fn(check.every, 'missing check.every method');
      check.verify.fn(check.map, 'missing check.map method');
  
      check.verify.object(obj, 'missing object to check');
      check.verify.object(predicates, 'missing predicates object');
      Object.keys(predicates).forEach(function (property) {
        if (!check.fn(predicates[property])) {
          throw new Error('not a predicate function for ' + property + ' but ' + predicates[property]);
        }
      });
      return check.every(check.map(obj, predicates));
    }
docs: Checks if object passes all rules in predicates.
  
  check.all({ foo: 'foo' }, { foo: check.string }, 'wrong object');
  
  This is a composition of check.every(check.map ...) calls
  https://github.com/philbooth/check-types.js#batch-operations
  
  @method all
  @param {object} object object to check
  @param {object} predicates rules to check. Usually one per property.
  @public
  @returns true or false