module Network.MoHWS.Logger.Level (T(..)) where import qualified Data.Map as Map data T = Debug | Info | Notice | Warn | Error | Crit | Alert | Emerg deriving (Eq,Ord,Enum,Bounded) names :: Map.Map T String names = Map.fromList $ (Debug, "debug") : (Info, "info") : (Notice, "notice") : (Warn, "warn") : (Error, "error") : (Crit, "crit") : (Alert, "alert") : (Emerg, "emerg") : [] instance Show T where show l = Map.findWithDefault (error $ "LogLevel.names is incomplete") l names instance Read T where readsPrec _ s = [ (l,"") | (l,n) <- Map.toList names, n == s ]