úÎZ•Rüz      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyMIT PaweB Nowak <pawel834@gmail.com> provisionalGHC onlySafe*019:;T Subset s k means that s reifies a subset of k.Subset, dense, total map.MIT PaweB Nowak <pawel834@gmail.com>portable Trustworthy/012349:;DIORT ]A total map from a subset s of keys k to values a, e.g. a restriction of a partial function k -> a= to a subset of its domain on which the function is defined. Most functions are derived from z.&n is equal to the size of the key set.&Restrict a partial map to a total map.Complexity: O(n)OConvert from and to a partial function that would be total if restricted to s.)Complexity: tabulate O(n), index O(log n) Complexity: { O(n * fmap) Complexity: | O(n), } O(n * log n) Complexity: ~ O(n),  O(n * log n)Complexity: all O(n) Complexity: all O(n)  Complexity: € O(n) Zippy applicative. Complexity:  O(n), ‚ O(n).    Bounded, dense, total map.MIT PaweB Nowak <pawel834@gmail.com>portable Trustworthy/012349:;DIRT $A total map from keys k to values a. Most functions are derived from z.!n is equal to the number of keys.VUnfortunately I cannot find any law linking Enum with Ord, so we cannot be sure that [minBound .. maxBound], is sorted. Because of that functions like  and ƒ8 have complexity O(n * log n), while they could be O(n).Convert from and to a (k -> a) function.1Complexity: tabulate O(n * log n), index O(log n) Complexity: { O(n * log n + n * fmap) Complexity: | O(n), } O(n * log n) Complexity: ~ O(n),  O(n * log n) Complexity: all O(n)! Complexity: „ O(n * log n), rest O(n)" Complexity: € O(n)#Zippy applicative. Complexity:  O(n * log n), ‚ O(n).  !"# #"!   !"#MIT PaweB Nowak <pawel834@gmail.com>GHC onlySafe019:;OT28A semigroup used to quickly fold a sparse finite domain.4G`mpower x n` raises x to the power n taking advantage of associativity.23456723456423756234567Bounded, sparse, total map.MIT PaweB Nowak <pawel834@gmail.com>GHC only Trustworthy 0129:;DLRT8kA total sparse map from keys k to values a. This map is implemented as a partial map and a default value. A creates an all-default values map with the given default value.Ťn is equal to the number of keys, k is the number of non-default values. If there are two maps involved k is taken to be the number of non-default values of their union.:&Convert the sparse map to a dense one.Complexity: O(n * log n); Complexity: | O(n), } O(n)< Complexity: ~ O(n),  O(n)=3Complexity: all O(k * log (n/k)) - arises from fold> Complexity: „ O(1), rest O(k1 + k2)?Complexity: all O(k1 + k2)@Complexity: all O(log k)A Complexity: … O(log k)B Complexity: † O(log k)C:Folds over the whole domain, including the default values.*sum (pure 1 :: TotalSparseMap Int Integer)18446744073709551616HComplexity: foldMap O(k * log (n/k)), the rest are defined using foldMapDZippy applicative. Complexity:  O(1), ‚ O(k1 + k2)E/Complexity: O(k * log (n/k)) - arises from foldF/Complexity: O(k * log (n/k)) - arises from fold89:;<=>?@ABCDEF89:89FEDCBA@?>=<;:89:;<=>?@ABCDEF1Subset, dense, total map implemented as a vector.MIT PaweB Nowak <pawel834@gmail.com>GHC onlyNone012349:;DRTJ]A total map from a subset s of keys k to values a, e.g. a restriction of a partial function k -> aV to a subset of its domain on which the function is defined. Implemented as a vector.!n is equal to the number of keys.‡Maps each key to itself.Complexity: O(n)LOConvert from and to a partial function that would be total if restricted to s.)Complexity: tabulate O(n), index O(log n)M Complexity: { O(n * fmap)N Complexity: | O(n), } O(n)O Complexity: ~ O(n),  O(n)PComplexity: all O(n)QComplexity: all O(n)R Complexity: € O(n)S Complexity: ˆ O(n)T Complexity: ‰ O(n)U Complexity: … O(log n)V Complexity: Š O(log n)WComplexity: all O(n)XComplexity: all O(n)Y Complexity: ‹ O(n)ZZippy applicative. Complexity:  O(n), ‚ O(n).JKŒŽ‡LMNOPQRSTUVWXYZJKJKJKŒŽ‡LMNOPQRSTUVWXYZ9 2Bounded, dense, total map implemented as a vector.MIT PaweB Nowak <pawel834@gmail.com>portableNone012349:;DRTbHA total map from keys k to values a, represented as an immutable vector.1Warning: the number of keys MUST fit into an Int.!n is equal to the number of keys.d%Convert from and to a total function.%Complexity: tabulate O(n), index O(1)e Complexity: { O(n * fmap)f Complexity: | O(n), } O(n)g Complexity: ~ O(n),  O(n)hComplexity: all O(n)iComplexity: all O(n)j Complexity: € O(n)k Complexity: ˆ O(n)l Complexity: ‰ O(n)m Complexity: … O(1)n Complexity: Š O(1)oComplexity: all O(n)pComplexity: all O(n)q Complexity: ‹ O(n)rZippy applicative. Complexity:  O(n), ‚ O(n).bc‘’“”defghijklmnopqrbcbcbc‘’“”defghijklmnopqr”9 •       !!"#$%&'()*+,-./01234567889:;<==>?@ABCDEFGHIJKLMNNOPQRSTUVWXYZ[\]^_`abcdeefghijklmnopqrstuvwxyz{|}~€‚ƒ„‚ƒ…‚ƒ†‚ƒ‡ˆ‰Š‹Œ‹ŒŽ‘’“”ˆ‰•ˆ‰–—ˆ‰˜ˆ‰™‹š–ˆ‰›œžŸœž —ŸĄ)total-maps-1.0.0.3-7eM0poXDs6fLKiTJQaTqGCData.Total.SubsetData.Total.Map.SubsetData.Total.MapData.Total.Internal.SparseFoldData.Total.Map.SparseData.Total.Array.SubsetData.Total.ArraySubsetTotalSubsetMaprestrict$fRepresentableTotalSubsetMap$fDistributiveTotalSubsetMap$fSerialTotalSubsetMap$fSerial1TotalSubsetMap$fMetricTotalSubsetMap$fAdditiveTotalSubsetMap"$fTraversableWithKeyTotalSubsetMap$fApplicativeTotalSubsetMap$fEqTotalSubsetMap$fOrdTotalSubsetMap$fShowTotalSubsetMap$fReadTotalSubsetMap$fFunctorTotalSubsetMap$fFoldableTotalSubsetMap$fTraversableTotalSubsetMap$fFoldableWithKeyTotalSubsetMap$fAdjustableTotalSubsetMap$fIndexableTotalSubsetMap$fLookupTotalSubsetMap$fZipWithKeyTotalSubsetMap$fZipTotalSubsetMap$fKeyedTotalSubsetMapTotalMap$fRepresentableTotalMap$fDistributiveTotalMap$fSerialTotalMap$fSerial1TotalMap$fMetricTotalMap$fAdditiveTotalMap$fTraversableWithKeyTotalMap$fApplicativeTotalMap $fEqTotalMap $fOrdTotalMap$fShowTotalMap$fReadTotalMap$fFunctorTotalMap$fFoldableTotalMap$fTraversableTotalMap$fFoldableWithKeyTotalMap$fAdjustableTotalMap$fIndexableTotalMap$fLookupTotalMap$fZipWithKeyTotalMap $fZipTotalMap$fKeyedTotalMap SparseFoldmpower foldPoint runSparseFold$fSemigroupSparseFoldTotalSparseMap toDenseMap$fSerialTotalSparseMap$fSerial1TotalSparseMap$fMetricTotalSparseMap$fAdditiveTotalSparseMap$fZipTotalSparseMap$fAdjustableTotalSparseMap$fIndexableTotalSparseMap$fLookupTotalSparseMap$fFoldableTotalSparseMap$fApplicativeTotalSparseMap$fOrdTotalSparseMap$fEqTotalSparseMap$fShowTotalSparseMap$fReadTotalSparseMap$fFunctorTotalSparseMapTotalSubsetArray$fRepresentableTotalSubsetArray$fDistributiveTotalSubsetArray$fSerialTotalSubsetArray$fSerial1TotalSubsetArray$fMetricTotalSubsetArray$fAdditiveTotalSubsetArray$$fTraversableWithKeyTotalSubsetArray!$fFoldableWithKeyTotalSubsetArray$fAdjustableTotalSubsetArray$fIndexableTotalSubsetArray$fLookupTotalSubsetArray$fZipWithKeyTotalSubsetArray$fZipTotalSubsetArray$fKeyedTotalSubsetArray$fApplicativeTotalSubsetArray$fEqTotalSubsetArray$fOrdTotalSubsetArray$fShowTotalSubsetArray$fReadTotalSubsetArray$fFunctorTotalSubsetArray$fFoldableTotalSubsetArray$fTraversableTotalSubsetArray TotalArray$fRepresentableTotalArray$fDistributiveTotalArray$fSerialTotalArray$fSerial1TotalArray$fMetricTotalArray$fAdditiveTotalArray$fTraversableWithKeyTotalArray$fFoldableWithKeyTotalArray$fAdjustableTotalArray$fIndexableTotalArray$fLookupTotalArray$fZipWithKeyTotalArray$fZipTotalArray$fKeyedTotalArray$fApplicativeTotalArray$fEqTotalArray$fOrdTotalArray$fShowTotalArray$fReadTotalArray$fFunctorTotalArray$fFoldableTotalArray$fTraversableTotalArraycontainers-0.5.7.1 Data.Map.BaseMap+distributive-0.5.0.2-ABrKtptb3jWJ1Lj8y86dF8Data.Distributive distribute#bytes-0.15.2-FJkOj8J0Mbh8plp27wTMVwData.Bytes.Serial serialize deserialize serializeWithdeserializeWith keys-3.11-KcRHCMpDtfkKhowcmZkYxUData.KeytraverseWithKeybaseGHC.Basepure<*>&adjunctions-4.3-GlBejJiSbFpJLLAEhTHewwData.Functor.Reptabulate$linear-1.20.5-ALqHTYew01KD1PdDd6TYmz Linear.VectorzeroindexlookupkeysfoldMapWithKeyadjustGHC.List mapWithKeykeyCountkeys'toIndex.: fromIndex