private CommandLineArgumentsDefinitionFactory(Func<CommandLineArgumentsDefinition, CommandLineArgumentsDefinition> fromOtherImpl, Func<CommandLineArgumentsDefinition> fromNothingImpl) { this.fromOtherImpl = fromOtherImpl ?? ((other) => { throw new NotImplementedException(); }); this.fromNothingImpl = fromNothingImpl ?? (()=> {throw new NotImplementedException();}); }