@@ -245,7 +245,7 @@ versionToText (Version major minor patch) =
245 <> B.decimal patch
245 <> B.decimal patch
248−versionFromText :: Text -> Either String Version
248+versionFromText :: Text -> Maybe Version
249versionFromText text =
249versionFromText text =
250 case Text.splitOn "." text of
250 case Text.splitOn "." text of
251 [major, minor, patch] ->
251 [major, minor, patch] ->
@@ -255,17 +255,17 @@ versionFromText text =
255 <*> toNumber patch
255 <*> toNumber patch
258− Left "Must have format MAJOR.MINOR.PATCH (e.g. 1.0.2)"
258+ Nothing
261−toNumber :: Text -> Either String Word16
261+toNumber :: Text -> Maybe Word16
262toNumber txt =
262toNumber txt =
263 case Text.decimal txt of
263 case Text.decimal txt of
264 Right (n, "") ->
264 Right (n, "") ->
268− Left "Must have format MAJOR.MINOR.PATCH (e.g. 1.0.2)"
268+ Nothing
@@ -320,11 +320,12 @@ decoder :: Decode.Decoder String Name
321 do txt <- Decode.text
321 do txt <- Decode.text
322 case fromText txt of
322 case fromText txt of
323 Left msg ->
326 Left msg ->
324 Decode.fail msg
327 Decode.fail msg
330encode :: Name -> Encode.Value
331encode :: Name -> Encode.Value
@@ -333,15 +334,15 @@ encode name =
336−versionDecoder :: Decode.Decoder String Version
337+versionDecoder :: Decode.Decoder Text Version
337versionDecoder =
338versionDecoder =
338 do txt <- Decode.text
339 do txt <- Decode.text
339 case versionFromText txt of
340 case versionFromText txt of
340− Right version ->
341+ Just version ->
341 Decode.succeed version
342 Decode.succeed version
343− Left msg ->
344+ Nothing ->
344− Decode.fail msg
345+ Decode.fail txt
347encodeVersion :: Version -> Encode.Value
348encodeVersion :: Version -> Encode.Value