code: function(C, action, thisp) {
  		var results = this.ancestorsAndSelf(C).concat(this.descendants(C));
  		if (action) {
  			results = results.map(function(C) {
  				return action.call(thisp, C);
  			});
  		}
  		return results;
  	}
docs: Return ancestor classes, descendant classes and class itself. If action is
  provided, return array of the results of executing the action for each
  related class and class itself with the class as argument.
  @param {constructor} C
  @param @optional {function} action Takes the class as argument
  @param @optional {object} thisp
  @returns {Array<<gui.Class|object>>}