Turns out that implementing a Common Lisp style condition system is nontrivial.