module Codeforces.Logging where
data ErrorLog = ErrorLog
{ ErrorLog -> String
elErrorMsg :: String
, ErrorLog -> Maybe String
elErrorLog :: Maybe String
}
deriving Int -> ErrorLog -> ShowS
[ErrorLog] -> ShowS
ErrorLog -> String
(Int -> ErrorLog -> ShowS)
-> (ErrorLog -> String) -> ([ErrorLog] -> ShowS) -> Show ErrorLog
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ErrorLog] -> ShowS
$cshowList :: [ErrorLog] -> ShowS
show :: ErrorLog -> String
$cshow :: ErrorLog -> String
showsPrec :: Int -> ErrorLog -> ShowS
$cshowsPrec :: Int -> ErrorLog -> ShowS
Show
mkErrorLog :: String -> ErrorLog
mkErrorLog :: String -> ErrorLog
mkErrorLog = (String -> Maybe String -> ErrorLog)
-> Maybe String -> String -> ErrorLog
forall a b c. (a -> b -> c) -> b -> a -> c
flip String -> Maybe String -> ErrorLog
ErrorLog Maybe String
forall a. Maybe a
Nothing
(<~>) :: String -> String -> ErrorLog
<~> :: String -> String -> ErrorLog
(<~>) String
msg String
details = String -> Maybe String -> ErrorLog
ErrorLog String
msg (String -> Maybe String
forall a. a -> Maybe a
Just (String -> Maybe String) -> String -> Maybe String
forall a b. (a -> b) -> a -> b
$ String
msg String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
": " String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
details)