{-# LANGUAGE Trustworthy, TemplateHaskell #-} module Lang.Crucible.Panic (HasCallStack, Crucible, Panic, panic) where import Panic hiding (panic) import qualified Panic data Crucible = Crucible panic :: HasCallStack => String -> [String] -> a panic :: forall a. HasCallStack => String -> [String] -> a panic = Crucible -> String -> [String] -> a forall a b. (PanicComponent a, HasCallStack) => a -> String -> [String] -> b Panic.panic Crucible Crucible instance PanicComponent Crucible where panicComponentName :: Crucible -> String panicComponentName Crucible _ = String "Crucible" panicComponentIssues :: Crucible -> String panicComponentIssues Crucible _ = String "https://github.com/GaloisInc/crucible/issues" {-# Noinline panicComponentRevision #-} panicComponentRevision :: Crucible -> (String, String) panicComponentRevision = $Crucible -> (String, String) useGitRevision