implement custom-set for haskell

I didn't go all the way to re-implement Set efficiently, but I did use a binary tree rather than a list :)
/cc @soapie @qnikst @pminten @sjakobi
Yes, it's a set. It's not known if the element is already present or not.