It took @qiemem and I a few minutes to figure out how these primitives work together (although the way they worked together was close to one of our initial guesses).
observer> show matrix:imaginary-eigenvalues matrix:from-row-list [[3 -2] [4 -1]]
observer: [2 -2]
observer> show matrix:real-eigenvalues matrix:from-row-list [[3 -2] [4 -1]]
observer: [1 1]
Adding some short narrative documentation about using these primitives together would be helpful for users and maintainers.