{-# 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