Address #240: Clean up hashtable implementation of set functions
The hashtable implementation for set-difference
, union
, and
intersection
is very similiar to the list implementation. Add a
macrolet for the common bits of each, and allow the caller to specify
the part that is different. The difference is basically how to test if
an element of list1 is a member of list2.