private void ValidateParam(List <IFactType> inputFactTypes, IFactType outputFactType) { if (outputFactType == null) { throw new ArgumentNullException(nameof(outputFactType)); } outputFactType.CannotIsType <ISpecialFact>(nameof(outputFactType)); if (InputFactTypes.Any(factType => factType.EqualsFactType(outputFactType))) { throw new ArgumentException("Cannot request a fact calculated according to the rule.", nameof(inputFactTypes)); } }