Finally, we have an "error" instance. This one is here to blow up in the event that you try to trick GHC into thinking you've handled all the possible errors, when you've only really handled one. You shouldn't see this.

Now, there's no weird polymorphism or type variables, and we can just pattern match directly on the value. However, we can skip the manual specializing of the type, and pattern match directly on the value:

There's only a single constraint on the error type. If we want to, we can write a specialized version of value that picks the large type to be equal to the single thing it contains.

This instance is the most base of base cases. A value may just be itself! This case can trigger whenever you only have a single constraint on a type. Let's consider the following code: