docs: function (/* [predicate, ] iterator */) { var iterator  = _.last (arguments),
                                                                 predicate = (arguments.length === 1 ? _.constant (true) : arguments[0])
          var methods = []
          for (var k in this) {
              var def = this.constructor.$definition[k]
              if ($property.isNot (def)) { var fn = this[k]
                  if (_.isFunction (fn) && !_.isPrototypeConstructor (fn) && predicate (def))  {
                      this[k] = iterator.call (this, fn, k, def) || fn } } } }