Panic module.

This commit is contained in:
Stephen Diehl
2016-06-08 19:32:03 -04:00
parent 1e690a9e78
commit 6df421ad72
4 changed files with 22 additions and 5 deletions
+1
View File
@@ -48,6 +48,7 @@ library
Functor
Semiring
Bifunctor
Panic
default-extensions:
NoImplicitPrelude
+3 -5
View File
@@ -18,10 +18,6 @@ import Control.Monad (Monad, return)
import qualified Base as P
import qualified Debug.Trace as T
{-# WARNING undefined "'undefined' remains in code" #-}
undefined :: a
undefined = P.undefined
{-# WARNING error "'error' remains in code" #-}
error :: String -> a
error = P.error
@@ -46,6 +42,8 @@ traceM s = T.trace s (return ())
traceIO :: String -> P.IO ()
traceIO = T.traceIO
{-# WARNING notImplemented "'notImplemented' remains in code" #-}
notImplemented :: a
notImplemented = P.error "Not implemented"
undefined :: a
undefined = P.undefined
+17
View File
@@ -0,0 +1,17 @@
module Panic (
FatalError(..),
panic,
) where
import Base (Show)
import Data.Text(Text)
import Control.Exception as X
-- | Uncatchable exceptions thrown and never caught.
data FatalError = FatalError { msg :: Text }
deriving (Show)
instance Exception FatalError
panic :: Text -> a
panic a = throw (FatalError a)
+1
View File
@@ -28,6 +28,7 @@ import Functor as X
import Either as X
import Applicative as X
import Conv as X
import Panic as X
import Base as Base hiding (
putStr