Opened 5 years ago

Closed 5 years ago

#5468 closed task (fixed)

Implement deepseq->{array,containers} dependancy reversal proposal

Reported by: hvr Owned by: igloo
Priority: normal Milestone:
Component: libraries (other) Version:
Keywords: deepseq Cc: johan.tibell@…
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: None/Unknown Test Case:
Blocked By: Blocking:
Related Tickets: Differential Rev(s):
Wiki Page:


See also the related #4868 proposal

Implementing the proposal involves the following steps:

  1. make hackage:deepseq a GHC-boot package,
  2. remove deepseq dependancy on hackage:array and hackage:containers,
  3. move (and refactor) the affected instance definitions to the array and containers packages respectively (and make them depend on deepseq), and
  4. satisfy the PVP by incrementing package versions where necessary.

Discussion Voting Result:

The proposal is supported by: Conrad Parker, Daniel Fischer(*), Edward Kmett, Gregory Collins, Herbert Valerio Riedel, Ian Lynagh(*), Ivan Lazar Miljenovic, Johan Tibell, Nicolas Pouillard, Paterson, Ross, Simon Marlow, Simon Peyton-Jones, Wren Ng Thornton.

The persons marked with (*) expressed conditional support, i.e. to support in case good reasons for and/or no good reasons against the proposal existed.

The full text of the proposal together with the discussion thread can be found at

Change History (10)

comment:1 Changed 5 years ago by hvr

Here are the commit messages of the attached patches as Trac ticket comment for convenience:

Subject: [PATCH 1/2] Remove dependancy and instances for array and container package

See #5468 for more information about the rationale of this change.

Note: This also bumps the package version from `` to ``,
thus skipping the major version `1.2` on purpose in order to allow for
an interim release to implement changes such as adding additional
`NFData` instances for `base` (see #5465 for instance).
 Control/DeepSeq.hs |   24 ------------------------
 deepseq.cabal      |    6 ++----
 2 files changed, 2 insertions(+), 28 deletions(-)
Subject: [PATCH 2/2] Enable SafeHaskell for GHC >= 7.2

This is done since by addressing #5468 `deepseq` is becoming a GHC
boot package. This simplifies compilation of the `containers` package
which uses SafeHaskell itself and as per #5468 will be made to import
 Control/DeepSeq.hs |    3 +++
 deepseq.cabal      |    1 +
 2 files changed, 4 insertions(+), 0 deletions(-)
Subject: [PATCH] Implement NFData instance for Array

The implementation is basically the same that was formely
defined in the `deepseq` package.

This adds a dependancy to the `deepseq` package

See #5468 for more information about this change.
 Data/Array.hs |    5 +++++
 array.cabal   |    4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)
Subject: [PATCH] Implement NFData instances for container types

This adds a dependancy on the `deepseq` package and implements `NFData`
instances for `Map`, `IntMap`, `Set`, `IntSet` and `Tree`. Also the package
version is bumped to `` since instances are added.

See #5468 for more information about this change.
 Data/IntMap.hs   |    6 ++++++
 Data/IntSet.hs   |   10 ++++++++++
 Data/Map.hs      |    5 +++++
 Data/Set.hs      |    9 +++++++++
 Data/Tree.hs     |    4 ++++
 containers.cabal |    4 ++--
 6 files changed, 36 insertions(+), 2 deletions(-)

comment:2 Changed 5 years ago by tibbe

Cc: johan.tibell@… added; tibbe removed

comment:3 Changed 5 years ago by hvr

Voting result errata:

  • The string "Paterson, Ross" in the list of supporters is superfluous: Ross Paterson did not express his support during the discussion period
  • Ian Lynagh 's comment is mistakenly reported as "conditional support" instead of the actual "conditional lack of opposition".

comment:4 Changed 5 years ago by igloo

Owner: changed from simonmar to igloo

comment:5 Changed 5 years ago by igloo@…

commit 6ff6895e910b7e048c44dcfdb8f9e8c98da72f4f

Author: Ian Lynagh <>
Date:   Thu Sep 8 12:09:42 2011 +0100

    Add deepseq as a core package; part of #5468 |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

comment:6 Changed 5 years ago by igloo

Resolution: fixed
Status: newclosed

deepseq is now a core package, and the containers instances are in the containers package.

Note: See TracTickets for help on using tickets.