/// <summary>
 /// Subtracts the given values.
 /// </summary>
 /// <typeparam name="TLeft">The type of the left hand side.</typeparam>
 /// <typeparam name="TRight">The type of the right hand side.</typeparam>
 /// <typeparam name="TResult">The result type.</typeparam>
 /// <param name="left">The left hand side parameter.</param>
 /// <param name="right">The right hand side parameter.</param>
 /// <returns>The subtracted result.</returns>
 internal static TResult Subtract <TLeft, TRight, TResult>(TLeft left, TRight right) =>
 SubtractImplementation <TLeft, TRight, TResult> .Invoke(left, right);
 /// <summary>
 /// Subtracts the given values.
 /// </summary>
 /// <typeparam name="T">The type of the operation (left hand side, right hand side, and result).</typeparam>
 /// <param name="left">The left hand side parameter.</param>
 /// <param name="right">The right hand side parameter.</param>
 /// <returns>The subtracted result.</returns>
 internal static T Subtract <T>(T left, T right) => SubtractImplementation <T, T, T> .Invoke(left, right);