Translations: don't depend on the fact that Aeson Object is...

implemented internally as a HashMap.  This is no longer
public as of aeson 2.0.0.0.
This commit is contained in:
John MacFarlane 2021-10-10 08:43:45 -07:00
parent aa78765bf9
commit d80aaee42b
2 changed files with 2 additions and 4 deletions

View file

@ -578,7 +578,6 @@ library
text-conversions >= 0.3 && < 0.4,
time >= 1.5 && < 1.13,
unicode-transforms >= 0.3 && < 0.4,
unordered-containers >= 0.2 && < 0.3,
xml >= 1.3.12 && < 1.4,
xml-conduit >= 1.9.1.1 && < 1.10,
unicode-collation >= 0.1.1 && < 0.2,

View file

@ -31,7 +31,6 @@ module Text.Pandoc.Translations (
where
import Data.Aeson.Types (Value(..), FromJSON(..))
import qualified Data.Aeson.Types as Aeson
import qualified Data.HashMap.Strict as HM
import qualified Data.Map as M
import qualified Data.Text as T
import qualified Data.YAML as YAML
@ -83,8 +82,8 @@ instance YAML.FromYAML Term where
parseYAML invalid = YAML.typeMismatch "Term" invalid
instance FromJSON Translations where
parseJSON (Object hm) = do
xs <- mapM addItem (HM.toList hm)
parseJSON o@(Object hm) = do
xs <- parseJSON o >>= mapM addItem . M.toList
return $ Translations (M.fromList xs)
where addItem (k,v) =
case safeRead k of