packages feed

MicroHs-0.15.0.0: lib/Control/Error.hs

-- Copyright 2023 Lennart Augustsson
-- See LICENSE file for full license.
module Control.Error(
  error, _errorLoc,
  undefined, _undefinedLoc,
  errorWithoutStackTrace,
  ) where
import qualified Prelude()              -- do not import Prelude
import Data.Char_Type
import Control.Exception.Internal

-- mhs compiler adds location of call and rewrites to _errorLoc
error :: forall a . String -> a
error = _errorLoc ""

-- mhs compiler adds location of call and rewrites to _undefinedLoc
undefined :: forall a . a
undefined = _undefinedLoc ""

-- no location of call added
_errorLoc :: forall a . String -> String -> a
_errorLoc l s = throw (ErrorCallWithLocation s l)

-- no location of call added
_undefinedLoc :: forall a . String -> a
_undefinedLoc l = throw (ErrorCallWithLocation "undefined" l)

-- Error without location
errorWithoutStackTrace :: forall a . String -> a
errorWithoutStackTrace = _errorLoc ""