packages feed

refined-containers-0.1.2.0: refined-containers.cabal

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