/// <summary> /// Subtract the Right of one either from the Right of another /// For numeric values the behaviour is to find the difference between the Rights (lhs - rhs) /// For Lst values the behaviour is to remove items in the rhs from the lhs /// For Map or Set values the behaviour is to remove items in the rhs from the lhs /// Otherwise if the R type derives from ISubtractable then the behaviour /// is to call lhs.Subtract(rhs); /// </summary> /// <typeparam name="L">Left</typeparam> /// <typeparam name="R">Right</typeparam> /// <param name="lhs">Left-hand side of the operation</param> /// <param name="rhs">Right-hand side of the operation</param> /// <returns>lhs - rhs</returns> public static EitherUnsafe <L, R> subtract <L, R>(EitherUnsafe <L, R> lhs, EitherUnsafe <L, R> rhs) => lhs.Subtract(rhs);