MPL-2.0 licensed by Veronika Romashkina, Vladislav Zavialov, Dmitrii Kovanikov
This version can be pinned in stack with:typerep-map-0.3.3.0@sha256:20510efab770158414ac7828d1eca063d795bcc724ac634dd13bc7a50b476f42,4681
Module documentation for 0.3.3.0
typerep-map
typerep-map
introduces TMap
and TypeRepMap
— data structures like Map
, but where types serve as keys, and values have the types specified in the corresponding key spots.
For the more details on the implementation see the following blog post:
Usage example
ghci> import Data.TMap
ghci> tm = insert True $ one (42 :: Int)
ghci> size tm
2
ghci> res = lookup tm
ghci> res :: Maybe Int
Just 42
ghci> res :: Maybe Bool
Just True
ghci> res :: Maybe String
Nothing
ghci> lookup (insert "hello" tm) :: Maybe String
Just "hello"
ghci> member @Int tm
True
ghci> tm' = delete @Int tm
ghci> member @Int tm'
False
Benchmarks
Tables below contain comparision with DMap TypeRep
of ten lookup
operations
on structure with size 10^4
:
ghc-8.2.2
ghc-8.4.3
ghc-8.8.3
ghc-8.10.1
DMap TypeRep
517.5 ns
779.9 ns
1.559 μs
1.786 μs
typerep-map
205.3 ns
187.2 ns
190.1 ns
169.1 ns
Changelog
typerep-map
uses PVP Versioning .
The changelog is available on GitHub .
0.3.3.0 — Apr 18, 2020
#83 :
Support GHC-8.10.
#80 :
Build on 32-bit platforms.
#78 :
Support GHC-8.8.3.
#63 :
Add invariant check.
0.3.2 — Mar 27, 2019
#47 :
Add Eq
instance for TypeRepMap
using -XQuantifiedConstraints
.
#70 :
Bump up to dependent-sum-0.5
.
0.3.1
#64 :
Fix segfault in toList
.
Support GHC 8.4.4 and 8.6.3.
0.3.0
#46 :
Make Show
instance for TypeRepMap
show keys.
Add keys
function.
#48 :
Add adjust
function for TypeRepMap
and TMap
.
#30 :
Rewrite fromSortedList
to use Array
and MutableArray
instead of IntMap
.
0.2.0
#43 :
Implement IsList
instance for TypeRepMap
.
Add hoistA
function.
#39 :
Implement hoistWithKey
function.
Add map
function for TMap
.
Drop support for ghc-8.0.2
.
0.1.0
Stackage is a service provided by the
Haskell Foundation
│ Originally developed by
FP Complete