module Imp.Exception.InvalidPackageName where

import qualified Control.Monad.Catch as Exception

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

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

new :: String -> InvalidPackageName
new :: String -> InvalidPackageName
new = String -> InvalidPackageName
InvalidPackageName