Compile time checks that a computation considers producing data through all possible constructors
For a brief tutorial to 'exhaustive', check out the documentation for "Control.Exhaustive", which contains a small example.