deepseq-1.2.0.1 missing Data.Map instance

Dear Group, Today I tried to compile snap 0.6 with ghc 7.2, (using virthualenv, which is GREAT by the way) and got the following error somewhere along the way got a message about aeson-native requires deepseq-1.1.0.2 but I had deepseq-1.2.0.1 installed. So I unpacked aeson-native-0.3.3.1 in my virthualenv and changed the build-depends to just deepseq which caused: Configuring aeson-native-0.3.3.1... Preprocessing library aeson-native-0.3.3.1... Building aeson-native-0.3.3.1... [2 of 6] Compiling Data.Aeson.Types ( Data/Aeson/Types.hs, dist/build/Data/Aeson/Types.o ) Data/Aeson/Types.hs:196:22: No instance for (NFData Object) arising from a use of `rnf' Possible fix: add an instance declaration for (NFData Object) In the expression: rnf o In an equation for `rnf': rnf (Object o) = rnf o In the instance declaration for `NFData Value' cabal: Error: some packages failed to install: aeson-native-0.3.3.1 failed during the building phase. The exception was: ExitFailure 1 A little investigating and I discovered that instance (NFData k, NFData a) => NFData (Data.Map.Map k a) where rnf = rnf . Data.Map.toList is in deepseq-1.1.0.2 but not in deepseq-1.2.0.1. Adding it back got aeson-native-0.3.3.1 and later snap-0.6 to compile just fine. So I guess my question is: Is there a reason that the map instance was removed from deepseq-1.2.0.1, and can we please put it back in? Thanks. Best wishes, Henry Laxen

Hello Henry I think it is a case of the dependency changing recently from deepseq depending on containers to containers depending on deepseq. Thus you want to check you are using compatible versions of deepseq and containers.

On Tuesday 15 November 2011, 23:26:04, Henry Laxen wrote:
So I guess my question is: Is there a reason that the map instance was removed from deepseq-1.2.0.1,
Yes.
and can we please put it back in?
No. The NFData instance has been moved to the containers package, where it can be more efficiently done. The change is already in the latest released deepseq version, but will only be in the containers version to be released with ghc-7.4. For your unfortunate combination, consider reverting to a prior deepseq version, or manually provide the instance where needed (I recommend the former).

On 15 November 2011 23:50, Daniel Fischer
The change is already in the latest released deepseq version, but will only be in the containers version to be released with ghc-7.4.
The change is already in the released containers-0.4.2.0. So the only thing Henry needs to do is install that version and rebuild his libraries against that version. Bas

On 16 November 2011 10:23, Bas van Dijk
On 15 November 2011 23:50, Daniel Fischer
wrote: The change is already in the latest released deepseq version, but will only be in the containers version to be released with ghc-7.4.
The change is already in the released containers-0.4.2.0. So the only thing Henry needs to do is install that version and rebuild his libraries against that version.
Except that it is usually recommended you _don't_ upgrade the version of containers that comes with GHC, as it will lead to diamond dependency problems down the line. -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com
participants (5)
-
Bas van Dijk
-
Daniel Fischer
-
Henry Laxen
-
Ivan Lazar Miljenovic
-
Stephen Tetley