Why can't you define a set monad? The first definition I can think of is making behave like Haskell's list monad?
That is to say that "xs ==> (\x -> f x)" Would take every element in the set "xs", pass each of them into f, and union the results into a single set.