I am not familiar with Haskell but want to check out some of its definitions. I am looking at the Set and see this:
data Set a = Bin {-# UNPACK #-} !Size !a !(Set a) !(Set a)
| Tip
Wondering what that comment is doing (if it's doing some sort of code injection magic), and what the meaning of the exclamation marks is and the overall statement of !Size !a !(Set a) !(Set a)
.