cabal-version: 3.0 name: refined-containers category: Data synopsis: Type-checked proof that a key exists in a container and can be safely indexed. description: This package defines ways to prove that a key exists in an associative container such as a 'Map', 'IntMap', or 'HashMap'; so that the key can be used to index into the map without a 'Maybe' or manually handling the \"impossible\" case with 'error' or other partial functions. To do this, the containers are tagged with a type parameter that identifies their set of keys, so that if you have another container with the same parameter, you know it has the same keys. There is also a type of keys that have been proven to exist in such containers -- a refinement type. They are also tagged with a type parameter. If the type parameter of the key matches that of the container, indexing is guaranteed to proceed without failure. license: MIT license-file: LICENSE author: mniip@typeable.io maintainer: mniip@typeable.io version: 0.1.0.1 build-type: Simple tested-with: , GHC == 9.6.3 , GHC == 9.4.8 , GHC == 9.2.8 , GHC == 9.0.2 , GHC == 8.10.7 , GHC == 8.6.5 source-repository head type: git location: https://github.com/typeable/refined-containers/ library build-depends: , base >= 4.12 && < 4.20 , adjunctions >= 4.4 && < 4.5 , constraints >= 0.11 && < 0.15 , containers >= 0.5.7 && < 0.8 , deepseq >= 1.4 && < 1.6 , distributive >= 0.5.3 && < 0.7 , hashable >= 1.2.7 && < 1.5 , indexed-traversable >= 0.1 && < 0.2 , mtl >= 2.2.2 && < 2.4 , refined >= 0.5 && < 0.9 , reflection >= 2 && < 2.2 , unordered-containers >= 0.2.11 && < 0.3 exposed-modules: Data.HashMap.Refined Data.HashMap.Strict.Refined Data.HashSet.Refined Data.IntMap.Refined Data.IntMap.Strict.Refined Data.IntSet.Refined Data.Map.Refined Data.Map.Strict.Refined Data.Set.Refined other-modules: Data.Container.Refined.Conversion Data.Container.Refined.Hashable Data.Container.Refined.Proofs Data.Container.Refined.Unsafe Data.HashMap.Common.Refined Data.IntMap.Common.Refined Data.Map.Common.Refined hs-source-dirs: src default-language: Haskell2010 default-extensions: BangPatterns BlockArguments ConstraintKinds DataKinds DeriveTraversable DerivingStrategies FlexibleContexts FlexibleInstances GADTs GeneralizedNewtypeDeriving MagicHash MultiParamTypeClasses MultiWayIf OverloadedStrings RankNTypes PatternSynonyms RoleAnnotations ScopedTypeVariables TupleSections TypeApplications TypeFamilies TypeOperators ghc-options: -Wall -Wredundant-constraints