module Imp.Exception.InvalidPackage where

import qualified Control.Monad.Catch as Exception

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

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

new :: String -> InvalidPackage
new :: String -> InvalidPackage
new = String -> InvalidPackage
InvalidPackage