// DerivationNode
        public virtual void Cycle(Object root, Object derivable)
        {
            var message = DerivationLogFormatter.FormatCycle(root, derivable);

            Console.WriteLine(message);
        }
        public virtual void Derived(Object derivable)
        {
            var message = DerivationLogFormatter.FormatDerived(derivable);

            Console.WriteLine(message);
        }
        public void CycleDetected(Object dependent, Object dependee)
        {
            var message = DerivationLogFormatter.FormatCycleDetected(dependent, dependee);

            Console.WriteLine(message);
        }
        public virtual void AddedDependency(Object dependent, Object dependee)
        {
            var message = DerivationLogFormatter.FormatAddedDependency(dependent, dependee);

            Console.WriteLine(message);
        }
        /// <summary>
        /// The dependee is derived before the dependent object;
        /// </summary>
        public virtual void AddedDependency(Object dependent, Object dependee)
        {
            var message = DerivationLogFormatter.FormatAddedDependency(dependent, dependee);

            this.List.Add(message);
        }
        public virtual void AddedDerivable(Object derivable)
        {
            var message = DerivationLogFormatter.FormatAddedDerivable(derivable);

            this.List.Add(message);
        }
        public virtual void PreDerived(Object derivable)
        {
            var message = DerivationLogFormatter.FormatPreDerived(derivable);

            this.List.Add(message);
        }
        public virtual void PostDeriving(Object derivable)
        {
            var message = DerivationLogFormatter.FormatPostDeriving(derivable);

            this.List.Add(message);
        }
        // DerivationNode
        public virtual void Cycle(Object root, Object derivable)
        {
            var message = DerivationLogFormatter.FormatCycle(root, derivable);

            this.List.Add(message);
        }