-- |
-- Module      :  FRP.Yampa.Diagnostics
-- Copyright   :  (c) Antony Courtney and Henrik Nilsson, Yale University, 2003
-- License     :  BSD-style (see the LICENSE file in the distribution)
--
-- Maintainer  :  ivan.perez@keera.co.uk
-- Stability   :  provisional
-- Portability :  portable
--
-- Standarized 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 :: String -> String -> String -> a
usrErr String
mn String
fn String
msg = String -> a
forall a. HasCallStack => String -> a
error (String
mn String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"." String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
fn String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
": " String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
msg)

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