You can have a Functor for a type of set

And in scala, we can do implicit conversions. 

To be applied after the other pull request. 

This lets us write more programs, such as having a set of values, mapping it to a partially applied function, then applying that set of functions to an argument.