module Common.Parsing.ParseErr
( ParseErr (..),
)
where
data ParseErr
= Err String
| Help String
deriving (ParseErr -> ParseErr -> Bool
(ParseErr -> ParseErr -> Bool)
-> (ParseErr -> ParseErr -> Bool) -> Eq ParseErr
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ParseErr -> ParseErr -> Bool
$c/= :: ParseErr -> ParseErr -> Bool
== :: ParseErr -> ParseErr -> Bool
$c== :: ParseErr -> ParseErr -> Bool
Eq, Int -> ParseErr -> ShowS
[ParseErr] -> ShowS
ParseErr -> String
(Int -> ParseErr -> ShowS)
-> (ParseErr -> String) -> ([ParseErr] -> ShowS) -> Show ParseErr
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ParseErr] -> ShowS
$cshowList :: [ParseErr] -> ShowS
show :: ParseErr -> String
$cshow :: ParseErr -> String
showsPrec :: Int -> ParseErr -> ShowS
$cshowsPrec :: Int -> ParseErr -> ShowS
Show)
instance Semigroup ParseErr where
(Err "") <> :: ParseErr -> ParseErr -> ParseErr
<> r :: ParseErr
r = ParseErr
r
(Help l :: String
l) <> _ = String -> ParseErr
Help String
l
(Err _) <> (Help r :: String
r) = String -> ParseErr
Help String
r
(Err l :: String
l) <> _ = String -> ParseErr
Err String
l
instance Monoid ParseErr where
mempty :: ParseErr
mempty = String -> ParseErr
Err ""