I rewrote type:finite-set so that it doesn't depend on the inner structure too much.
I have only commented out Aaron's version, feel free to revert back to that if mine
is unclear/seems wrong.