public static void Delegate <T>(this ThenConfigurator <T> configurator, Action <T> callback)
            where T : class
        {
            DelegateConsequence <T> consequence = Consequences.Delegate <T>((session, fact) => callback(fact));

            var consequenceConfigurator = new RuleConsequenceConfiguratorImpl <T>(consequence);

            configurator.AddConfigurator(consequenceConfigurator);
        }
        public static void Add <T, TFact>(this ThenConfigurator <T> configurator,
                                          Func <T, TFact> factFactory)
            where T : class
            where TFact : class
        {
            AddFactConsequence <T, TFact> consequence = Consequences.Add(factFactory);

            var consequenceConfigurator = new RuleConsequenceConfiguratorImpl <T>(consequence);

            configurator.AddConfigurator(consequenceConfigurator);
        }