module CabalGild.Unstable.Exception.ParseError where

import qualified Control.Monad.Catch as Exception
import qualified Text.Parsec.Error as Parsec

-- | This type only exists to add an 'Exception.Exception' instance to the
-- 'Parsec.ParseError' type. That instance was added in @parsec-3.1.17.0@. See:
-- <https://github.com/haskell/parsec/pull/178>.
newtype ParseError = ParseError
  { ParseError -> ParseError
unwrap :: Parsec.ParseError
  }
  deriving (ParseError -> ParseError -> Bool
(ParseError -> ParseError -> Bool)
-> (ParseError -> ParseError -> Bool) -> Eq ParseError
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ParseError -> ParseError -> Bool
== :: ParseError -> ParseError -> Bool
$c/= :: ParseError -> ParseError -> Bool
/= :: ParseError -> ParseError -> Bool
Eq, Int -> ParseError -> ShowS
[ParseError] -> ShowS
ParseError -> String
(Int -> ParseError -> ShowS)
-> (ParseError -> String)
-> ([ParseError] -> ShowS)
-> Show ParseError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ParseError -> ShowS
showsPrec :: Int -> ParseError -> ShowS
$cshow :: ParseError -> String
show :: ParseError -> String
$cshowList :: [ParseError] -> ShowS
showList :: [ParseError] -> ShowS
Show)

instance Exception.Exception ParseError where
  displayException :: ParseError -> String
displayException = String -> ShowS
forall a. Monoid a => a -> a -> a
mappend String
"parse error: " ShowS -> (ParseError -> String) -> ParseError -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ParseError -> String
forall a. Show a => a -> String
show (ParseError -> String)
-> (ParseError -> ParseError) -> ParseError -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ParseError -> ParseError
unwrap