úÎVPq'      !"#$%&2Bounded, dense, total map implemented as a vector.MIT PaweB Nowak <pawel834@gmail.com> provisionalportableNone+,-./234=KMHA 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.'%Convert from and to a total function.%Complexity: tabulate O(n), index O(1)( Complexity: ) O(n * fmap)* Complexity: + O(n), , O(n)- Complexity: . O(n), / O(n)0Complexity: all O(n)1Complexity: all O(n)2 Complexity: 3 O(n)4 Complexity: 5 O(n)6 Complexity: 7 O(n)8 Complexity: 9 O(1): Complexity: ; O(1)<Complexity: all O(n)=Complexity: all O(n)> Complexity: ? O(n)@Zippy applicative. Complexity: A O(n), B O(n).CDEFG'(*-012468:<=>H@CDEFG'(*-012468:<=>H@G MIT PaweB Nowak <pawel834@gmail.com> experimentalGHC only Safe-Inferred+,234HM8A semigroup used to quickly fold a sparse finite domain.G`mpower x n` raises x to the power n taking advantage of associativity.Bounded, dense, total map.MIT PaweB Nowak <pawel834@gmail.com> provisionalportable Trustworthy*+,-./234=BKM $A total map from keys k to values a. Most functions are derived from I.!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 A and J8 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: K O(n * log n), rest O(n) Complexity: 3 O(n)Zippy applicative. Complexity: A O(n * log n), B O(n).  L    LBounded, sparse, total map.MIT PaweB Nowak <pawel834@gmail.com> provisionalGHC only Trustworthy +,-234=EKMkA total sparse map from keys k to values a. This map is implemented as a partial map and a default value. AA 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 * log n) Complexity: . O(n), / O(n * log n)3Complexity: all O(k * log (n/k)) - arises from fold Complexity: K O(1), rest O(k1 + k2)Complexity: all O(k1 + k2)Complexity: all O(log k) Complexity: 9 O(log k) Complexity: M O(log k):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 foldMapZippy applicative. Complexity: A O(1), B O(k1 + k2)/Complexity: O(k * log (n/k)) - arises from fold /Complexity: O(k * log (n/k)) - arises from foldN  N MIT PaweB Nowak <pawel834@gmail.com> provisionalGHC onlySafe&+,234M! Subset s k means that s reifies a subset of k.!!!!Subset, dense, total map.MIT PaweB Nowak <pawel834@gmail.com> provisionalportable Trustworthy*+,-./234=BHKM "]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 I.&n is equal to the size of the key set.$&Restrict a partial map to a total map.Complexity: O(n)OOConvert from and to a partial function that would be total if restricted to s.)Complexity: tabulate O(n), index O(log n)P Complexity: ) O(n * fmap)Q Complexity: + O(n), , O(n * log n)R Complexity: . O(n), / O(n * log n)SComplexity: all O(n)TComplexity: all O(n)U Complexity: 3 O(n)VZippy applicative. Complexity: A O(n), B O(n). "#$OPQRSTUWV!"#$!"#$ "#$OPQRSTUWV1Subset, dense, total map implemented as a vector.MIT PaweB Nowak <pawel834@gmail.com> provisionalGHC onlyNone+,-./234=KM%]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.XMaps each key to itself.Complexity: O(n)YOConvert from and to a partial function that would be total if restricted to s.)Complexity: tabulate O(n), index O(log n)Z Complexity: ) O(n * fmap)[ Complexity: + O(n), , O(n)\ Complexity: . O(n), / O(n)]Complexity: all O(n)^Complexity: all O(n)_ Complexity: 3 O(n)` Complexity: 5 O(n)a Complexity: 7 O(n)b Complexity: 9 O(log n)c Complexity: ; O(log n)dComplexity: all O(n)eComplexity: all O(n)f Complexity: ? O(n)gZippy applicative. Complexity: A O(n), B O(n).%&hijXkYZ[\]^_`abcdeflg!%&!%&%&hijXkYZ[\]^_`abcdeflgk m       !"#$%&&'(()*+,-./01/023/04/056789:;<9:=>9:?@9:ABCDEFGH9:IJCKLCKMNOPQRSTUVWXYZ[\]9:E^_`abcdefgQhijklmnopqrstuvNwORxytotal-maps-1.0.0.1Data.Total.ArrayData.Total.Internal.SparseFoldData.Total.MapData.Total.Map.SparseData.Total.SubsetData.Total.Map.SubsetData.Total.Array.Subset TotalArray SparseFoldmpower foldPoint runSparseFold$fSemigroupSparseFoldTotalMap$fRepresentableTotalMap$fDistributiveTotalMap$fSerialTotalMap$fSerial1TotalMap$fMetricTotalMap$fAdditiveTotalMap$fTraversableWithKeyTotalMap$fApplicativeTotalMapTotalSparseMap toDenseMap$fSerialTotalSparseMap$fSerial1TotalSparseMap$fMetricTotalSparseMap$fAdditiveTotalSparseMap$fZipTotalSparseMap$fAdjustableTotalSparseMap$fIndexableTotalSparseMap$fLookupTotalSparseMap$fFoldableTotalSparseMap$fApplicativeTotalSparseMap$fOrdTotalSparseMap$fEqTotalSparseMapSubsetTotalSubsetMaprestrictTotalSubsetArray$fRepresentableTotalArray$fDistributiveTotalArraydistributive-0.4.4Data.Distributive distribute$fSerialTotalArray bytes-0.15Data.Bytes.Serial serialize deserialize$fSerial1TotalArray serializeWithdeserializeWith$fMetricTotalArray$fAdditiveTotalArray$fTraversableWithKeyTotalArray keys-3.10.1Data.KeytraverseWithKey$fFoldableWithKeyTotalArrayfoldMapWithKey$fAdjustableTotalArrayadjust$fIndexableTotalArrayindex$fLookupTotalArraybaseGHC.Listlookup$fZipWithKeyTotalArray$fZipTotalArray$fKeyedTotalArray mapWithKey$fApplicativeTotalArrayControl.Applicativepure<*>keyCounttoIndex fromIndexkeys.:TFCo:R:KeyTotalArraycontainers-0.5.5.1 Data.Map.BaseMapadjunctions-4.2Data.Functor.Reptabulatelinear-1.18.0.1 Linear.VectorzeroTFCo:R:KeyTotalMapTFCo:R:KeyTotalSparseMap$fRepresentableTotalSubsetMap$fDistributiveTotalSubsetMap$fSerialTotalSubsetMap$fSerial1TotalSubsetMap$fMetricTotalSubsetMap$fAdditiveTotalSubsetMap"$fTraversableWithKeyTotalSubsetMap$fApplicativeTotalSubsetMapTFCo:R:KeyTotalSubsetMap$fRepresentableTotalSubsetArray$fDistributiveTotalSubsetArray$fSerialTotalSubsetArray$fSerial1TotalSubsetArray$fMetricTotalSubsetArray$fAdditiveTotalSubsetArray$$fTraversableWithKeyTotalSubsetArray!$fFoldableWithKeyTotalSubsetArray$fAdjustableTotalSubsetArray$fIndexableTotalSubsetArray$fLookupTotalSubsetArray$fZipWithKeyTotalSubsetArray$fZipTotalSubsetArray$fKeyedTotalSubsetArray$fApplicativeTotalSubsetArraykeys'TFCo:R:KeyTotalSubsetArray