protected int Compare(VariableValue left, VariableValue right)
        {
            var comparison = VariableHandler.Compare(left, right);

            if (comparison.HasValue)
            {
                return(comparison.Value);
            }
            else
            {
                throw ComparisonMismatch(left.Type, right.Type);
            }
        }