[Haskell-cafe] aeson: instance FromJSON IntMap

Olaf Klinke olf at aatal-apotheke.de
Wed Mar 3 15:27:46 UTC 2021


Dear Cafe, 

why is Aeson's instance FromJSON IntMap so different from the instance
of Map? Apparently the Map instance expects an Object (the dictionary)
while the IntMap instance [1] is implemented using IntMap.fromList, so
it expects an array. 
I can of course decode the JSON as (Map Int) and then use 
IntMap.fromAscList . Map.assocs
but how efficient is that? And it also relies on Map.assocs producing
the list in the order expected by fromAscList which (unlikely) could be
broken in a future version of containers. 

Thanks
Olaf

[1] 
https://hackage.haskell.org/package/aeson-1.5.6.0/docs/src/Data.Aeson.Types.FromJSON.html#line-1891



More information about the Haskell-Cafe mailing list