If Void is uninhabited than any Functor that holds only
values of the type Void is holding no values.
This is only safe for valid functors that do not perform GADT-like
analysis on the argument.
If Void is uninhabited then any Monad that holds values
of type Void is holding no values.
This is only safe for valid monads that do not perform GADT-like
analysis on the argument.