úÎ_[E:      !"#$%&'()*+,-./0123456789cAlias of Data.Map.fromList, takes a list of key value tuples and creates a dictionary out of them.  dict [("hello",1),("there",2)] $ fromList [("hello",1),("there",2)]  dict []  fromList [] "Returns a List of key-value pairs Returns Maybe v from key k Returns v from key k or error. Radds key-value pair to a dictionary. If key is already in dict will update value. "checks for a key in a dictionary. %checks if a value is in a dictionary 1Deletes a key-pair from a dictionary given a key ADeletes ALL key-pairs from a dictionary given they match a value Intersects two dictionaries Unions two dictionaries &Tests if d1 is a sub-dictionary of d2 FReturns a the first occurance of a key from a value. Otherwise error. !Returns the size of a dictionary 3Data.Maps a function to all values in a dictionary 1Data.Maps a function to all keys in a dictionary )filter on a dincationy, you get the idea filter for keys      Alias of as /= (not equal to)  Alias of mod Works like python's "in"C function. (Alias of elem). Simply checks if an item is in a list. ( $ "Hello" ? ["Hello","there","people"]  True * $ "Bonjour" ? ["Hello","there","people"]  False CAlias of as isInFixOf. Checks if list is a sublist of another list ' $ "hello" ?? "Why hello there people"  True  $ [2,3] ?? [1,2,3,4]  True ) $ "bonjour" ?? "why hello there people"  False ‰Returns the index of the first occurance of an item if it is in a list. Otherwise gives an error. Also remember, starts counting from 0! ¾NOTE: This is not like elemIndex! It does not return a Maybe Int it returns an error if the item is not in a list. Either use elemIndex or test using ? first. THIS FUNCTION IS NOT COMPLETE.  $ 'n' ?! "banana"  2  $ 'v' ?! "banana" ! *** Exception: Item not in list QTakes a list and a pair (x,y) and inserts the item y into the list at position x 0 $ ["hello","there","people"] !/ (0,"bonjour")  ["bonjour","there","people"] Like !! but returns Maybe a  $ [1,2,3,4] ! 5  Nothing  $ [1,2,3,4] ! 1  Just 2 alias of length alias of length >Simple function that takes the unit list and returns the unit >NOTE: Will return an error if not supplied with the unit list  $ the ["hello"]  "hello"  $ the ["hello","there"] M "*** Exception: function 'the' called with a list other than the unit list. :;  BTakes a list item and splits a list around it, removing the item. % $ explodeI "Hello there people" ' '  ["Hello","there","people"] Alias of explodeI PTake a list item and concatinates each element of it around another given item.  $implodeI "askjdnaskd" '!'  "a!s!k!j!d!n!a!s!k!d" alias of implodeI wTakes a two lists and explodes the first into a new list, around the second. Removing the second list where it occurs. THIS NEEDS FIXING alias of explode !—Takes a list of lists and an extra list and concatinates the list of lists with the second list inbetween. When used with the empty list mimics concat 3 $ implode ["helloasdad","asd hello","hello"] "!!"  "helloasdad!!asd hello!!hello" "Alias of implode #@takes n number of items from the front of a list, alias of take " $ takeFor 5 "Hello there people"  "Hello" $@drops n number of items from the front of a list, alias of drop " $ dropFor 5 "Hello there people"  " there people" %Btakes a number of items from a list before it reaches the index n % $ takeBefore 5 "Hello there people"  "Hello there p" &Bdrops a number of items from a list before it reaches the index n % $ dropBefore 5 "Hello there people"  "eople" '}In a list of lists this removes any occurances of the empty list. Can also be used to remove occurances of the empty string. (Qmaps a function in depth N to the given list. map3, map4, map5 are also defined. # $ map2 (*2) [[1,2,3,4],[1,1,1,2]]  [[2,4,6,8],[2,2,2,4]] )TReplaces any occuranses of the second list, with the third list, in the first list. 5 $ replace "why hello hello there" "hello" "bonjour"  "why bonjour bonjour there" *@Takes a list of items and returns a list with each element in it's own single list.  $ each "hello"  ["h","e","l","l","o"] <= !"#>$?%&'(@AB)* !"#$%&'()* !"#$%&'()*+0Strips whitespace from either side of a string. # $ strip " asdsadasds \r\n" \n  "asdsadasds" ,-Strips whitespace from the right of a string $ $ stripr " asdioamlksd \n\n" \n  " asdioamlksd" -,Strips whitespace from the left of a string " $ stripl " \n\n askdjnasdnaskd"  "askdjnasdnaskd" . Alias of + / List of whitespace characters:  [' ','\r','\n','\t'] +,-./+,-./+,-./ 0*repeats an IO function n number of times. 1'Like replicateM but stores the returns 2Wrepeats an IO function for every member of a list, using the list item as an arguement  $ do foreach [1..3] print  1  2  3 ! $ do foreach "asjkdnsd" putChar  asjkdnsd 3/repeats an IO function until a IO Bool is true yNOTE: Be careful with this function! Better to use recursion. Testing against an item created in the loop will not work. 42like putStr or putChar but works on any type with "show"B defined in a similar way to how print does. Can be thought of as "print"! without the trailing linebreak. wNOTE: This means it will print strings with quotes around them. To print strings without quotes use putStr or putStrLn 5 Alias of put 6Alias of print 7Alias of print 899takes a list and returns a random element from that list  $ rand [1..5]  5  $ rand "hello there people"  'l' 012345678CDEFGHI9 0123456789 0123456789J :;<= !"#>$?%&'(@AB)*+,-./012345678CDEFGHI9J      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ Useful-0.0.3Useful.DictionaryUseful.General Useful.List Useful.String Useful.IOUsefuldict dictToList#!#!!#+#?#*?#-#*-#\\#++#??#?!dictSizemapDmapDkeysfilterD filterDkeys!=????!!/!lencounttheexplodeIsplitIimplodeIjoinIexplodesplitimplodejointakeFordropFor takeBefore dropBefore rmEmptyListmap2replaceeachstripstriprstriplchompstripset replicateM replicateM_foreachwhileputwritewritelnputlnmapM_2rand% plingHelperexplode' explode''takeFor'dropFor'map3map4map5mapM_3mapM_4mapM_5mapM2mapM3mapM4mapM5