/// <inheritdoc/>
        /// <remarks>Additionally checks version compatibility.</remarks>
        public override int CompareFacts(IFact x, IFact y)
        {
            int result = x.CompareTo(y);

            if (result != 0)
            {
                return(result);
            }

            result = x.CompareByPriorityParameter(y);
            if (result != 0)
            {
                return(result);
            }

            return(x.CompareByVersionParameter(y));
        }