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.2.0
build-type: Simple
tested-with:
, GHC == 9.12.1
, GHC == 9.10.1
, GHC == 9.8.2
, GHC == 9.6.6
, 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.22
, 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.6
, 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