code: function CLinearAggregation(name, class_, type) {
  	return new Type("linearAggregation", function makeLinearAggregation(ctx) {
  		var {linearAggregators} = ctx;
  		var subAggregators = linearAggregators == null ? [] : linearAggregators.slice(0);
  		if (subAggregators.indexOf(name) == -1)
  			subAggregators.push(name);
  		return type.makeNode(
  			{...ctx, linearAggregators: subAggregators, [name]: new class_()}
  		);
  	});
  }
docs: The context property "linearAggregators" is a list of strings.  These strings denote context properties which are "linear aggregators", for which multiplication factors have to be applied in certain parts of the configuration. - CLinearAggregation(...) creates a linear aggregator in the context and registers it in the "linearAggregators" list. - CMultiplying(...) applies within its subtree a factor to all the additions to any linear aggregator.