Name: strict-containers Version: 0.1 Synopsis: Strict containers. Category: Data, Data Structures Description: This package provides strict versions of some standard Haskell containers - including 'HashMap', 'IntMap', 'Map', 'Sequence', and 'Vector'. . 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 @lens@, @optics@, and deserialisation instances e.g. for @binary@ and @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 @containers@ and @unordered-containers@, including methods and fundamental instances. It also contains instances for @binary@ and @indexed-traversable@. More instances are defined in other packages, e.g. @strict-containers-lens@ and @strict-containers-serialise@. . The current version of this library has been autogenerated from: . -- generated list for versions -- DO NOT EDIT below, AUTOGEN versions * containers v0.6.4.1 * unordered-containers v0.2.13.0 * vector v0.12.3.0 -- DO NOT EDIT above, AUTOGEN versions License: BSD3 License-File: LICENSE Maintainer: Ximin Luo Copyright: (c) 2021 by Ximin Luo Homepage: https://github.com/haskellari/strict-containers Cabal-Version: >= 1.10 Build-type: Simple extra-source-files: CHANGELOG.md -- generated list for includes -- DO NOT EDIT below, AUTOGEN includes include/containers.h -- DO NOT EDIT above, AUTOGEN includes tested-with: GHC ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.3 || ==8.10.4 || ==9.0.1 library default-language: Haskell2010 hs-source-dirs: src ghc-options: -Wall build-depends: base >= 4.5.0.0 && < 5 , array >= 0.4.0.0 , binary >= 0.8.4.1 && < 0.9 , containers >= 0.5.9.2 && < 0.7 , deepseq >= 1.2 && < 1.5 , indexed-traversable >= 0.1.1 && < 0.2 , hashable >= 1.2.7.0 && < 1.4 , primitive >= 0.6.4.0 && < 0.8 , unordered-containers >= 0.2 && < 0.3 , strict >= 0.4 && < 0.5 , vector >= 0.12 && < 0.13 , vector-binary-instances >= 0.2 && < 0.3 exposed-modules: Data.Strict.HashMap Data.Strict.HashMap.Internal -- generated list for HashMap -- DO NOT EDIT below, AUTOGEN HashMap Data.Strict.HashMap.Autogen.Strict Data.Strict.HashMap.Autogen.Internal Data.Strict.HashMap.Autogen.Internal.Array Data.Strict.HashMap.Autogen.Internal.Strict Data.Strict.HashMap.Autogen.Internal.List Data.Strict.HashMap.Autogen.Internal.Unsafe -- DO NOT EDIT above, AUTOGEN HashMap Data.Strict.HashSet Data.Strict.IntMap Data.Strict.IntMap.Internal -- generated list for IntMap -- DO NOT EDIT below, AUTOGEN IntMap Data.Strict.IntMap.Autogen.Strict Data.Strict.IntMap.Autogen.Internal Data.Strict.IntMap.Autogen.Merge.Strict Data.Strict.IntMap.Autogen.Strict.Internal Data.Strict.IntMap.Autogen.Internal.Debug Data.Strict.IntMap.Autogen.Internal.DeprecatedDebug -- DO NOT EDIT above, AUTOGEN IntMap Data.Strict.IntSet Data.Strict.Map Data.Strict.Map.Internal -- generated list for Map -- DO NOT EDIT below, AUTOGEN Map Data.Strict.Map.Autogen.Strict Data.Strict.Map.Autogen.Internal Data.Strict.Map.Autogen.Merge.Strict Data.Strict.Map.Autogen.Strict.Internal Data.Strict.Map.Autogen.Internal.Debug Data.Strict.Map.Autogen.Internal.DeprecatedShowTree -- DO NOT EDIT above, AUTOGEN Map Data.Strict.Sequence Data.Strict.Sequence.Internal -- generated list for Sequence -- DO NOT EDIT below, AUTOGEN Sequence Data.Strict.Sequence.Autogen Data.Strict.Sequence.Autogen.Internal Data.Strict.Sequence.Autogen.Internal.Sorting -- DO NOT EDIT above, AUTOGEN Sequence Data.Strict.Set -- generated list for ContainersUtils -- DO NOT EDIT below, AUTOGEN ContainersUtils Data.Strict.ContainersUtils.Autogen.Coercions Data.Strict.ContainersUtils.Autogen.BitUtil Data.Strict.ContainersUtils.Autogen.StrictPair Data.Strict.ContainersUtils.Autogen.StrictMaybe Data.Strict.ContainersUtils.Autogen.PtrEquality Data.Strict.ContainersUtils.Autogen.State Data.Strict.ContainersUtils.Autogen.BitQueue Data.Strict.ContainersUtils.Autogen.TypeError -- DO NOT EDIT above, AUTOGEN ContainersUtils Data.Strict.Vector Data.Strict.Vector.Internal -- generated list for Vector -- DO NOT EDIT below, AUTOGEN Vector Data.Strict.Vector.Autogen Data.Strict.Vector.Autogen.Mutable -- DO NOT EDIT above, AUTOGEN Vector include-dirs: include -- generated list for tests -- DO NOT EDIT below, AUTOGEN tests test-suite map-strict-properties default-language: Haskell2010 hs-source-dirs: tests main-is: map-properties.hs type: exitcode-stdio-1.0 build-depends: containers, strict-containers build-depends: array >=0.4.0.0 , base >=4.6 && <5 , deepseq >=1.2 && <1.5 cpp-options: -DSTRICT ghc-options: -O2 other-extensions: BangPatterns CPP build-depends: HUnit , QuickCheck >=2.7.1 , test-framework , test-framework-hunit , test-framework-quickcheck2 , transformers test-suite map-strictness-properties default-language: Haskell2010 hs-source-dirs: tests main-is: map-strictness.hs type: exitcode-stdio-1.0 build-depends: containers, strict-containers build-depends: array >=0.4.0.0 , base >=4.6 && <5 , ChasingBottoms , deepseq >=1.2 && <1.5 , HUnit , QuickCheck >=2.7.1 , test-framework >=0.3.3 , test-framework-quickcheck2 >=0.2.9 , test-framework-hunit ghc-options: -Wall other-extensions: BangPatterns CPP other-modules: Utils.IsUnit test-suite intmap-strict-properties default-language: Haskell2010 hs-source-dirs: tests main-is: intmap-properties.hs type: exitcode-stdio-1.0 cpp-options: -DSTRICT other-modules: IntMapValidity build-depends: strict-containers build-depends: array >=0.4.0.0 , base >=4.6 && <5 , deepseq >=1.2 && <1.5 ghc-options: -O2 other-extensions: BangPatterns CPP build-depends: containers, strict-containers build-depends: HUnit , QuickCheck >=2.7.1 , test-framework , test-framework-hunit , test-framework-quickcheck2 test-suite intmap-strictness-properties default-language: Haskell2010 hs-source-dirs: tests main-is: intmap-strictness.hs type: exitcode-stdio-1.0 other-extensions: BangPatterns CPP build-depends: containers, strict-containers build-depends: array >=0.4.0.0 , base >=4.6 && <5 , ChasingBottoms , deepseq >=1.2 && <1.5 , HUnit , QuickCheck >=2.7.1 , test-framework >=0.3.3 , test-framework-quickcheck2 >=0.2.9 , test-framework-hunit ghc-options: -Wall other-modules: Utils.IsUnit test-suite seq-properties default-language: Haskell2010 hs-source-dirs: tests main-is: seq-properties.hs type: exitcode-stdio-1.0 build-depends: strict-containers build-depends: array >=0.4.0.0 , base >=4.6 && <5 , deepseq >=1.2 && <1.5 ghc-options: -O2 other-extensions: BangPatterns CPP build-depends: QuickCheck >=2.7.1 , test-framework , test-framework-quickcheck2 , transformers test-suite hashmap-strict-properties hs-source-dirs: tests main-is: HashMapProperties.hs type: exitcode-stdio-1.0 build-depends: base, containers >= 0.5.8, hashable >= 1.0.1.1, QuickCheck >= 2.4.0.1, test-framework >= 0.3.3, test-framework-quickcheck2 >= 0.2.9, strict-containers, unordered-containers default-language: Haskell2010 ghc-options: -Wall cpp-options: -DASSERTS -DSTRICT test-suite vector-tests-O0 Default-Language: Haskell2010 type: exitcode-stdio-1.0 Main-Is: VectorMain.hs other-modules: Boilerplater Tests.Bundle Tests.Move Tests.Vector Tests.Vector.Property Tests.Vector.Boxed Tests.Vector.UnitTests Utilities hs-source-dirs: tests Build-Depends: base >= 4.5 && < 5, template-haskell, base-orphans >= 0.6, vector, strict-containers, primitive, random, QuickCheck >= 2.9 && < 2.15, HUnit, tasty, tasty-hunit, tasty-quickcheck, transformers >= 0.2.0.0 if !impl(ghc > 8.0) Build-Depends: semigroups default-extensions: CPP, ScopedTypeVariables, PatternGuards, MultiParamTypeClasses, FlexibleContexts, Rank2Types, TypeSynonymInstances, TypeFamilies, TemplateHaskell Ghc-Options: -O0 -threaded Ghc-Options: -Wall -- DO NOT EDIT above, AUTOGEN tests