packages feed

scrod-0.2026.2.21: source/library/Scrod/Ghc/Uninitialized.hs

-- | Exception thrown when an unneeded GHC 'DynFlags' field is accessed.
module Scrod.Ghc.Uninitialized where

import qualified Control.Monad.Catch as Exception
import qualified GHC.Stack as Stack
import qualified Language.Haskell.TH as TH
import qualified System.IO.Unsafe as Unsafe

newtype Uninitialized = MkUninitialized
  { unwrap :: TH.Name
  }
  deriving (Eq, Ord, Show)

instance Exception.Exception Uninitialized

throw :: (Stack.HasCallStack) => TH.Name -> a
throw = Unsafe.unsafePerformIO . Exception.throwM . MkUninitialized