use a functor rather than first-class modules, for Set