data ErrorMessage' s
    = -- | Show the text as is.
      Text s
    | {- | Pretty print the type.
      @ShowType :: k -> ErrorMessage@
      -}
      forall t. ShowType t
    | {- | Put two pieces of error message next
      to each other.
      -}
      ErrorMessage' s :<>: ErrorMessage' s
    | {- | Stack two pieces of error message on top
      of each other.
      -}
      ErrorMessage' s :$$: ErrorMessage' s
