module Imp.Exception.InvalidAlias where

import qualified Control.Monad.Catch as Exception

newtype InvalidAlias
  = InvalidAlias String
  deriving (InvalidAlias -> InvalidAlias -> Bool
(InvalidAlias -> InvalidAlias -> Bool)
-> (InvalidAlias -> InvalidAlias -> Bool) -> Eq InvalidAlias
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: InvalidAlias -> InvalidAlias -> Bool
== :: InvalidAlias -> InvalidAlias -> Bool
$c/= :: InvalidAlias -> InvalidAlias -> Bool
/= :: InvalidAlias -> InvalidAlias -> Bool
Eq, Int -> InvalidAlias -> ShowS
[InvalidAlias] -> ShowS
InvalidAlias -> String
(Int -> InvalidAlias -> ShowS)
-> (InvalidAlias -> String)
-> ([InvalidAlias] -> ShowS)
-> Show InvalidAlias
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> InvalidAlias -> ShowS
showsPrec :: Int -> InvalidAlias -> ShowS
$cshow :: InvalidAlias -> String
show :: InvalidAlias -> String
$cshowList :: [InvalidAlias] -> ShowS
showList :: [InvalidAlias] -> ShowS
Show)

instance Exception.Exception InvalidAlias where
  displayException :: InvalidAlias -> String
displayException (InvalidAlias String
x) = String
"invalid alias: " String -> ShowS
forall a. Semigroup a => a -> a -> a
<> ShowS
forall a. Show a => a -> String
show String
x

new :: String -> InvalidAlias
new :: String -> InvalidAlias
new = String -> InvalidAlias
InvalidAlias