-- |
-- Module      :  FRP.Yampa.Diagnostics
-- Copyright   :  (c) Ivan Perez, 2014-2022
--                (c) George Giorgidze, 2007-2012
--                (c) Henrik Nilsson, 2005-2006
--                (c) Antony Courtney and Henrik Nilsson, Yale University, 2003-2004
-- License     :  BSD-style (see the LICENSE file in the distribution)
--
-- Maintainer  :  ivan.perez@keera.co.uk
-- Stability   :  provisional
-- Portability :  portable
--
-- Standardized error-reporting for Yampa
module FRP.Yampa.Diagnostics where

-- | Reports an error due to a violation of Yampa's preconditions/requirements.
usrErr :: String -> String -> String -> a
usrErr :: forall a. String -> String -> String -> a
usrErr String
mn String
fn String
msg = forall a. HasCallStack => String -> a
error (String
mn forall a. [a] -> [a] -> [a]
++ String
"." forall a. [a] -> [a] -> [a]
++ String
fn forall a. [a] -> [a] -> [a]
++ String
": " forall a. [a] -> [a] -> [a]
++ String
msg)

-- | Reports an error in Yampa's implementation.
intErr :: String -> String -> String -> a
intErr :: forall a. String -> String -> String -> a
intErr String
mn String
fn String
msg = forall a. HasCallStack => String -> a
error (String
"[internal error] " forall a. [a] -> [a] -> [a]
++ String
mn forall a. [a] -> [a] -> [a]
++ String
"." forall a. [a] -> [a] -> [a]
++ String
fn forall a. [a] -> [a] -> [a]
++ String
": "
                           forall a. [a] -> [a] -> [a]
++ String
msg)