Let's consider a more complex example: suppose we want an Unbox
instance for Maybe a. We can encode this using the pair (Bool, a), with
the boolean indicating whether we have Nothing or Just something. This
encoding requires a dummy value in the Nothing case, necessitating an
additional Default (see the data-default package) constraint. Thus: