clean up read/show abuse

Avoid ever using read to parse a non-haskell formatted input string.

show :: Key is arguably still show abuse, but displaying Keys as filenames
is just too useful to give up.
This commit is contained in:
Joey Hess 2011-11-07 23:21:22 -04:00
parent fdf988be6d
commit b11a63a860
18 changed files with 75 additions and 98 deletions

View file

@ -9,13 +9,12 @@ module Types.UUID where
-- A UUID is either an arbitrary opaque string, or UUID info may be missing.
data UUID = NoUUID | UUID String
deriving (Eq, Ord)
deriving (Eq, Ord, Show)
instance Show UUID where
show (UUID u) = u
show NoUUID = ""
fromUUID :: UUID -> String
fromUUID (UUID u) = u
fromUUID NoUUID = ""
instance Read UUID where
readsPrec _ s
| null s = [(NoUUID, "")]
| otherwise = [(UUID s, "")]
toUUID :: String -> UUID
toUUID [] = NoUUID
toUUID s = UUID s