private static bool TargetMemberTypeComparer(ITypePair typePair, ITypePair otherTypePair)
        {
            if (TypePairExtensions.IsForTargetType(typePair, otherTypePair))
            {
                return(true);
            }

            return((otherTypePair is IQualifiedMemberContext context) &&
                   (context.TargetMember?.HasCompatibleType(typePair.TargetType) == true));
        }
        private static bool SourceDictionaryTypeComparer <TValue>(ITypePair typePair, ITypePair otherTypePair)
        {
            if (!TypePairExtensions.IsForSourceType(typePair, otherTypePair))
            {
                return(false);
            }

            if (typeof(TValue) == Constants.AllTypes)
            {
                return(true);
            }

            if ((otherTypePair as IQualifiedMemberContext)?.SourceMember is DictionarySourceMember dictionaryMember)
            {
                return(typeof(TValue).IsAssignableTo(dictionaryMember.ValueType));
            }

            return(false);
        }