I came across the following definition as I try to learn Haskell using a real project to drive it. I don’t understand what the exclamation mark in front of each argument means and my books didn’t seem to mention it.
data MidiMessage = MidiMessage !Int !MidiMessage