typerep-map-0.3.3.0: typerep-map.cabal
cabal-version: 2.4
name: typerep-map
version: 0.3.3.0
synopsis: Efficient implementation of a dependent map with types as keys
description:
A dependent map from type representations to values of these types.
.
Here is an illustration of such a map:
.
> TMap
> ---------------
> Int -> 5
> Bool -> True
> Char -> 'x'
.
In addition to @TMap@, we provide @TypeRepMap@ parametrized by a
@vinyl@-style interpretation. This data structure is equivalent to @DMap
TypeRep@, but with significantly more efficient lookups.
homepage: https://github.com/kowainik/typerep-map
bug-reports: https://github.com/kowainik/typerep-map/issues
license: MPL-2.0
license-file: LICENSE
author: Veronika Romashkina, Vladislav Zavialov, Dmitrii Kovanikov
maintainer: Kowainik <xrom.xkov@gmail.com>
copyright: 2017-2020 Kowainik
category: Data, Data Structures, Types
build-type: Simple
extra-doc-files: README.md
, CHANGELOG.md
tested-with: GHC == 8.2.2
, GHC == 8.4.4
, GHC == 8.6.5
, GHC == 8.8.3
, GHC == 8.10.1
source-repository head
type: git
location: https://github.com/kowainik/typerep-map.git
common common-options
build-depends: base >= 4.10 && < 4.15
default-language: Haskell2010
default-extensions: BangPatterns
DerivingStrategies
OverloadedStrings
RecordWildCards
ScopedTypeVariables
TypeApplications
ghc-options: -Wall
-Wcompat
-Widentities
-Wincomplete-uni-patterns
-Wincomplete-record-updates
if impl(ghc >= 8.0)
ghc-options: -Wredundant-constraints
if impl(ghc >= 8.2)
ghc-options: -fhide-source-paths
if impl(ghc >= 8.4)
ghc-options: -Wmissing-export-lists
-Wpartial-fields
if impl(ghc >= 8.8)
ghc-options: -Wmissing-deriving-strategies
-Werror=missing-deriving-strategies
if impl(ghc >= 8.10)
ghc-options: -Wunused-packages
library
import: common-options
hs-source-dirs: src
exposed-modules: Data.TMap
Data.TypeRepMap
Data.TypeRepMap.Internal
build-depends: containers >= 0.5.10.2 && < 0.7
, ghc-prim >= 0.5.1.1 && < 0.7
, primitive ^>= 0.7.0
, deepseq ^>= 1.4
library typerep-extra-impls
import: common-options
hs-source-dirs: typerep-extra-impls
exposed-modules: Data.TypeRep.CMap
Data.TypeRep.OptimalVector
Data.TypeRep.Vector
build-depends: containers >= 0.5.10.2 && < 0.7
, vector ^>= 0.12.0.1
, deepseq ^>= 1.4
test-suite typerep-map-test
import: common-options
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Test.hs
other-modules: Test.TypeRep.CMap
, Test.TypeRep.TypeRepMap
, Test.TypeRep.TypeRepMapProperty
, Test.TypeRep.Vector
, Test.TypeRep.VectorOpt
build-depends: ghc-typelits-knownnat >= 0.4.2 && < 0.8
, hedgehog ^>= 1.0
, hspec ^>= 2.7.1
, hspec-hedgehog ^>= 0.0.1
, typerep-map
, typerep-extra-impls
ghc-options: -threaded -rtsopts -with-rtsopts=-N
benchmark typerep-map-benchmark
import: common-options
type: exitcode-stdio-1.0
hs-source-dirs: benchmark
main-is: Main.hs
other-modules: CMap
, CacheMap
, DMap
, Spec
, Vector
, OptimalVector
build-depends: criterion >= 1.4.1.0 && < 1.6
, deepseq ^>= 1.4.3.0
, dependent-map >= 0.2.4.0 && < 0.5
, dependent-sum >= 0.5 && < 0.8
, ghc-typelits-knownnat >= 0.4.2 && < 0.8
, typerep-map
, typerep-extra-impls
ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N -freduction-depth=0