On day 5, I wrote about how to make a set monad — first build a sequence of instructions that describe how to build a Set, and then interpret that sequence of instructions to give a result, an actual Set.
Set