--------------------------------------------------------------------------------

{-# LANGUAGE Safe #-}

module Copilot.Theorem.Misc.Error
  ( badUse
  , impossible
  , impossible_
  , notHandled
  , fatal
  ) where

--------------------------------------------------------------------------------

errorHeader :: String
errorHeader :: String
errorHeader = String
"[Copilot-kind ERROR]  "

badUse :: String -> a
badUse :: String -> a
badUse String
s = String -> a
forall a. HasCallStack => String -> a
error (String -> a) -> String -> a
forall a b. (a -> b) -> a -> b
$ String
errorHeader String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
s

impossible :: String -> a
impossible :: String -> a
impossible String
s = String -> a
forall a. HasCallStack => String -> a
error (String -> a) -> String -> a
forall a b. (a -> b) -> a -> b
$ String
errorHeader String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"Unexpected internal error : " String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
s

impossible_ :: a
impossible_ :: a
impossible_ = String -> a
forall a. HasCallStack => String -> a
error (String -> a) -> String -> a
forall a b. (a -> b) -> a -> b
$ String
errorHeader String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"Unexpected internal error"

notHandled :: String -> a
notHandled :: String -> a
notHandled String
s = String -> a
forall a. HasCallStack => String -> a
error (String -> a) -> String -> a
forall a b. (a -> b) -> a -> b
$ String
errorHeader String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"Not handled : " String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
s

fatal :: String -> a
fatal :: String -> a
fatal = String -> a
forall a. HasCallStack => String -> a
error

--------------------------------------------------------------------------------