-- | Debugging utilities

module Hydra.Tools.Debug where

import Control.Exception

newtype DebugException = DebugException String deriving Int -> DebugException -> ShowS
[DebugException] -> ShowS
DebugException -> String
(Int -> DebugException -> ShowS)
-> (DebugException -> String)
-> ([DebugException] -> ShowS)
-> Show DebugException
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DebugException -> ShowS
showsPrec :: Int -> DebugException -> ShowS
$cshow :: DebugException -> String
show :: DebugException -> String
$cshowList :: [DebugException] -> ShowS
showList :: [DebugException] -> ShowS
Show

instance Exception DebugException

debug :: Bool
debug = Bool
True :: Bool

throwDebugException :: String -> c
throwDebugException :: forall c. String -> c
throwDebugException = DebugException -> c
forall a e. Exception e => e -> a
throw (DebugException -> c) -> (String -> DebugException) -> String -> c
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> DebugException
DebugException