data LookupError = Missing | Unreadable deriving (Eq, Show) render :: Either LookupError String -> String render (Left Missing) = "No entry" render (Left Unreadable) = "Entry cannot be read" render (Right text) = text