more housecleaning


... and nat is now an instance of semiring. (But I still have to make nat and int instances of ordered_semiring and ordered_ring, respectively.)