public GenericArgumentsInferenceException(GenericArgumentsInferenceExceptionType type, MethodInfo originalSignature, MethodInfo inferredSignature, TypeInferenceEngine engine, Exception innerException)
     : this(type, originalSignature, inferredSignature, engine, null, innerException)
 {
     
 }
 public GenericArgumentsInferenceException(GenericArgumentsInferenceExceptionType type, MethodInfo originalSignature, MethodInfo inferredSignature, TypeInferenceEngine engine, int? mismatchIndex, Exception innerException)
     : base(originalSignature, inferredSignature, engine, mismatchIndex, innerException)
 {
     Type = type;
 }
        public GenericArgumentsInferenceException(GenericArgumentsInferenceExceptionType type, MethodInfo originalSignature, MethodInfo inferredSignature, TypeInferenceEngine engine, int? mismatchIndex)
            : this(type, originalSignature, inferredSignature, engine, mismatchIndex, null)
        {

        }