Изучаю чужой конфиг для xmonad. Наткнулся на такие вот примерно строки
fileToLogger :: (String -> String) -> String -> FilePath -> Logger
fileToLogger f e p = do
let readWithE f1 e1 p1 = E.catch (do
contents <- readFile p1
return $ f1 (initNotNull contents) ) ((\_ -> return e1) :: E.SomeException -> IO String)
str <- liftIO $ readWithE f e p
return $ return str
-- Battery status
batStatus :: Logger
batStatus = fileToLogger (\x -> x) "AC Conection" "/sys/class/power_supply/BAT1/status"
myfunc::String->String
myfunc a = a