rescue-0.2.0: library/Data/Exception/Types.hs
-- | Common exceptions
module Data.Exception.Types
( NotFound (..)
, NotAllowed (..)
, AlreadyExists (..)
, OutOfBounds (..)
, DivideByZero (..)
) where
import Data.Text
data NotFound entity
= NotFound
deriving (Show, Eq)
data NotAllowed entity user
= NotAllowed entity user
deriving (Show, Eq)
newtype AlreadyExists entity
= AlreadyExists entity
deriving (Show, Eq)
newtype OutOfBounds entity index
= OutOfBounds index
deriving (Show, Eq)
data DivideByZero
= DivideByZero
deriving (Show, Eq)
newtype InvalidFormat entity
= InvalidFormat entity
deriving (Show, Eq)
-- | Attach a message to an exception, typicaly for runtime user feedback
--
-- ==== __Examples__
--
-- >>> :set -XOverloadedStrings
-- >>> show $ InvalidFormat "foo" `WithMessage` "Not a valid JSON object"
-- "InvalidFormat \"foo\" `WithMessage` \"Not a valid JSON object\""
data WithMessage err
= err `WithMessage` Text
deriving (Show, Eq)