strict-containers: Strict containers.
This package provides strict versions of some standard Haskell containers -
The reasoning is the same as that for our
strict package - though some
containers already define strict operations that force their inputs, the
underlying data type is shared between the lazy and strict variants, i.e. by
default lazy. In particular, instances are defined lazily on the common type,
meaning that external utilities such as
optics, and deserialisation
instances e.g. for
serialise, all work lazily and there is not
even the option to go strict.
This package defines separate data types, to avoid these problems. Instances can then be defined on these fully-strict data types.
To be clear, the "strict" vs "lazy" discussion refers to the values of a map or the elements of a sequence. The standard variants of these data structures that can be lazy-or-strict are already always-strict in their keys (for maps) and lengths (for sequences) respectively. This is also why we don't define strict variants of sets here, since the standard variants are already strict in their elements.
Note: generally, instances for strict containers violate their respective laws in the presence of bottom (undefined, error, infinite-loop). In the absence of bottom, laws are preserved.
This library mirrors the API of the standard lazy-or-strict variants in
unordered-containers, including methods and fundamental
instances. It also contains instances for
More instances are defined in other packages, e.g.
The current version of this library has been autogenerated from:
- strict-containers-0.2.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
|Versions [RSS]||0.1, 0.2|
|Dependencies||array (>=0.4.0.0), base (>=184.108.40.206 && <5), binary (>=0.8.4.1 && <0.9), containers (>=0.6.6 && <0.7), deepseq (>=1.2 && <1.5), hashable (>=220.127.116.11 && <1.5), indexed-traversable (>=0.1.1 && <0.2), primitive (>=0.6.4.0 && <0.8), strict (>=0.4 && <0.6), template-haskell, unordered-containers (>=0.2.19.1 && <0.3), vector (>=0.13.0.0 && <0.14), vector-binary-instances (>=0.2.2.0 && <0.3) [details]|
|Copyright||(c) 2021 by Ximin Luo|
|Maintainer||Ximin Luo <firstname.lastname@example.org>|
|Revised||Revision 1 made by ErikDeCastroLopo at 2023-09-21T02:56:36Z|
|Category||Data, Data Structures|
|Uploaded||by infinity0 at 2022-12-12T12:50:03Z|
|Reverse Dependencies||2 direct, 0 indirect [details]|
|Downloads||530 total (17 in the last 30 days)|
|Rating||2.0 (votes: 1) [estimated by Bayesian average]|
|Status||Docs available [build log]
Last success reported on 2022-12-12 [all 1 reports]