Exercise 2.86. Suppose we want to handle complex numbers whose real parts, imaginary parts, magnitudes, and angles can be either ordinary numbers, rational numbers, or other numbers we might wish to add to the system. Describe and implement the changes to the system needed to accommodate this. You will have to define operations such as sine and cosine that are generic over ordinary numbers and rational numbers. ———————————————————————————————————————————————————————————————————————— All of the mathematical operations done by the complex number package will need to be changed to use the apply-generic versions rather than the native Scheme operations. These operations need to be available for all number types that can be used as complex number parts. These are: square, +, *, all of which are already implemented, and sine and cosine which need to be added to the system. I am not interested in actually doing the implementation, but it seems straightforward.