)"^     SafeShort description(c) Elsen, Inc., 2016BSD3cooper.charles.m@gmail.com experimentalPOSIXSafeA quadruply nested MapA triply nested MapA doubly nested MapSynonym for MapExclusive sliceO(log n)mInclusive key-based slice. Returns a map whose keys are all between the lower and upper bounds (inclusive).O(log n)Inclusive index-based slice. Run an inclusive slice given left and right indices. if the left or right index is out of bounds, the left index of 0 or right index of (Map.size m - 1) will be used respectively.O(log n)Drops n+ elements from the (left hand side of the) .Takes n+ elements from the (left hand side of the) .This generalizes  to a monadic predicate. ,Transpose the first two indexes of a nested . +Run a grouping function over the keys of a . O(n * log(n)) -Run a grouping function over the values of a . O(n * log(n)) Run a grouping function over a V. The supplied function will map each element of the list to a group. The resulting k will map the groups produced by the supplied function to the lists of elements which produced that group..Perhaps this is better illustrated by example:let even s = s `mod` 2 == 0groupBy even [1,2,3,4]%fromList [(False,[3,1]),(True,[4,2])] O(n * log(n)) *Only keep keys that occur in the supplied  .(Drop the keys occurring in the supplied  .6Create a Map from a list of keys and a list of values.&fromLists ks vs = fromList (zip ks vs)'Perform a left scan on the values of a .:Map.elems (Map.scanl1 f xs) = List.scanl1 f (Map.elems xs)(Perform a right scan on the values of a .:Map.elems (Map.scanr1 f xs) = List.scanr1 f (Map.elems xs)*Generate a Lookup2 from a list of triples.+Lookup a value two levels deep in a Lookup2-Lookup a value three levels deep in a Lookup3,Lookup a value four levels deep in a Lookup4!"#$ %&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~    !"#$       !"#!"$!%&'()*!+,!+-!+.!+/!+0!"1!"2!"3!"4!"5!"6!"7!"8!"9!":!";!"<!"=!">!"?!"@!"A!"B!"C!"D!"E!"F!"G!"H!"I!"J!"K!"L!"M!"N!"O!"P!"Q!"R!"S!"T!"U!"V!"W!"X!"Y!"Z!"[!"\!"]!"^!"_!"`!"a!"b!"c!"d!"e!"f!"g!"h!"i!"j!"k!"l!"m!"n!"o!"p!"q!"r!"s!"t!"u!"v!"w!"x!"y!"z!"{!"|!"}!"~!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"mapex_EIGaiCXSf4BEZnEgu1P7fSData.Map.ExtensionsData.Map.FunctionLookup4Lookup3Lookup2LookupslicesliceidroptakefilterM transpose groupKeysBy groupElemsBygroupBykeepKeysdropKeys fromListsscanl1scanr1 fromList2lookup2lookup3lookup4<$$><$$$><$$$$><&><&&><&&&><&&&&>sliceExconta_2C3ZI8RgPO2LBMidXKTvIU Data.Map.BaseMapfilter Data.Set.BaseSetex1ex2dropLeft dropRightData.Map foldWithKeyfoldinsertLookupWithKey'insertWithKey' insertWith' splitRootvalid showTreeWithshowTree deleteFindMax deleteFindMin splitLookupsplitfromDistinctAscListfromAscListWithKeyfromAscListWith fromAscList toDescList toAscListtoListfromListWithKey fromListWithfromListfromSetkeysSetassocskeyselemsfoldMapWithKey foldlWithKey' foldlWithKey foldrWithKey' foldrWithKeyfoldl'foldlfoldr'foldrmapKeysMonotonic mapKeysWithmapKeysmapAccumRWithKeymapAccumWithKeymapAccumtraverseWithKey mapWithKeymapmapEitherWithKey mapEithermapMaybeWithKeymapMaybepartitionWithKey partition filterWithKeyisProperSubmapOfByisProperSubmapOf isSubmapOfBy isSubmapOf mergeWithKeyintersectionWithKeyintersectionWith intersectiondifferenceWithKeydifferenceWith difference unionWithKey unionWithunion unionsWithunionsmaxViewminViewmaxViewWithKeyminViewWithKeyupdateMaxWithKeyupdateMinWithKey updateMax updateMin deleteMax deleteMinfindMaxfindMindeleteAtupdateAtelemAt lookupIndex findIndexalterupdateLookupWithKey updateWithKeyupdate adjustWithKeyadjustdeleteinsertLookupWithKey insertWithKey insertWithinsert singletonemptylookupGElookupLElookupGTlookupLTfindWithDefault notMembermemberlookupsizenull\\!