Opaque values.
Useful if you want to put something without a Show instance inside something which you'd like to be able to display.
For example:
data State v =
State {
stateRefs :: [Var (Opaque (IORef Int)) v]
} deriving (Eq, Show)