    {-# LANGUAGE Safe #-}
    {-# OPTIONS_HADDOCK not-home #-}

    {-|
    This module exports:

      - The 'TypeError' type family, which is used to provide custom type
        errors. This is a type-level analogue to the term level error function.
      - The 'ErrorMessage' kind, used to define custom error messages.
      - The 'Unsatisfiable' constraint, a more principled variant of 'TypeError'
        which gives a more predictable way of reporting custom type errors.

    @since 4.17.0.0
    -}

    module GHC.TypeError
      ( ErrorMessage (..)
      , TypeError
      , Assert
      , Unsatisfiable, unsatisfiable
      ) where

    import GHC.Internal.TypeError