Cannot import unsafe modules in Safe Haskell [GHC-44360]

GHC implements the SafeHaskell extension which allows programmers to restrict modules to a specific subset which is considered safe and does not contain loopholes such as unsafePerformIO. More details are available in the GHC User’s Guide. In order to uphold the guarantees of Safe Haskell, GHC does not allow modules which are declared safe to import unsafe modules.

Examples

Safe module tries to import Unsafe.Coerce

This module tries to import the module Unsafe.Coerce, even though the module is declared to be safe. In order to use an unsafe module such as Unsafe.Coerce, the annotation which declares the module to be safe has to be removed.

messages/GHC-44360/unsafe-import/before/UnsafeImport.hs:4:1: error: [GHC-44360]
    Unsafe.Coerce: Can't be safely imported!
    The module itself isn't safe.
  |
4 | import Unsafe.Coerce
  | ^^^^^^^^^^^^^^^^^^^^
UnsafeImport.hs
Before
{-# LANGUAGE Safe #-}
module UnsafeImport where

import Unsafe.Coerce
After

module UnsafeImport where

import Unsafe.Coerce