hQ (      !"# $ % & ' Like (1, but reads the entire contents of the file into > the string, and then closes the file, before the computation  completes. j)*+,-./012345678(9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~AInserts each element of the list into the set in turn, from left  to right. )5Applies a function to the first component of a pair. 6Applies a function to the second component of a pair. 1Applies a pair of functions to a pair of values. Dual of . Wraps the value in  if the predicate  succeeds, otherwise returns . >Passes down the list from left to right, inserting each entry  into the map.  Simultaneous lookup and delete. d      !"#$%&'()*+,- AConverts an association list into a multimap. If the association ? list contains duplicate keys, then the corresponding lists of  values become concatenated. ?fromList [(4, "dca"), (1, "aba"), (2, "b"), (1, "ac"), (3, "")](fromList [(1,"abaac"),(2,"b"),(4,"dca")] ?Converts a multimap into an association list, with the keys in  ascending order. HtoList $ fromList [(4, "dca"), (1, "aba"), (2, "b"), (1, "ac"), (3, "")][(1,"abaac"),(2,"b"),(4,"dca")] The empty multimap.  A multimap with a single entry. =Inserts a new key-value pair. If other entries already exist E with the same key, then the new entry is inserted just before them. <insert 2 'a' $ fromList [(1, "efg"), (2, "jzw"), (3, "abc")])fromList [(1,"efg"),(2,"ajzw"),(3,"abc")]CPasses down the list from left to right, inserting each entry into  the multimap. 9insertMany [(1, 'a'), (5, 'a'), (1, 'a'), (1, 'b')] emptyfromList [(1,"baa"),(5,"a")]=Prepends a list of values onto the entry with the given key. 7insertList 7 "hello" $ fromList [(5, "ab"), (7, "efg")]"fromList [(5,"ab"),(7,"helloefg")]7Passes down the given list from left to right invoking .  Tests if the multimap is empty. :Returns the list of values associated with the given key. 7lookup 5 $ fromList [(1, "abc"), (5, "aagf"), (6, "c")]"aagf"6Deletes all the values associated with the given key. $Simultaneous lookup and deleteList. >For each key that maps to a non-empty list of values, returns D that key and its corresponding values as well as the multimap with C those values removed. The keys are enumerated in ascending order. 9Modifies the list of values associated with a given key. Returns 1 if the multimap is empty, otherwise returns the B first value associated with the maximal key of the multimap, and & the multimap stripped of that value. *maxView $ fromList [(1, "ab"), (2, "efg")]'Just ('e',fromList [(1,"ab"),(2,"fg")])@Returns all of the values in the multimap in ascending order of  their keys. 3elems $ fromList [(1, "aba"), (2, "adf"), (3, "z")] "abaadfz"AReturns all of the values in the multimap in descending order of A their keys. The values are enumerated in the same order as with . 7descElems $ fromList [(1, "aba"), (2, "adf"), (3, "z")] "zadfaba"FReturns all of the key-value pairs in the multimap in ascending order  of keys. )assocs $ fromList [(1, "ab"), (4, "cda")])[(1,'a'),(1,'b'),(4,'c'),(4,'d'),(4,'a')]GReturns all of the key-value pairs in the multimap in descending order > of keys. The values are enumerated in the same order as with . -descAssocs (fromList [(1, "ab"), (4, "cda")]))[(4,'c'),(4,'d'),(4,'a'),(1,'a'),(1,'b')]   <Returns a list of lists, each obtained by dropping a single  element of the argument. dropEachElem "abcd"["bcd","acd","abd","abc"] Similar to *, but each output list is paired with the  element that was dropped. extractEachElem "abcd"1[('a',"bcd"),('b',"acd"),('c',"abd"),('d',"abc")]ASorts, then groups the elements of a list, using a specified key C function. The sorting process is stable, i.e. elements with equal  keys remain in the same order.  sortAndGroupOn (`mod` 3) [1..10][[3,6,9],[1,4,7,10],[2,5,8]]BCollects together the list of values corresponding to each unique E key in an association list. Entries in the output list are arranged D in ascending order of key. The ordering of values corresponding to 0 a given key is preserved from input to output. ?alistCollect [(7, 'a'), (3, 'a'), (5, 'x'), (3, 'a'), (3, 'b')][(3,"aab"),(5,"x"),(7,"a")] >Filters a list of values according to a list of corresponding  boolean flags. 0zipFilter [False, True, False, True, True] [0..][1,3,4]t./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   !*Applies a function to the left component. "+Applies a function to the right component. !"!"!" #Exclusive OR. ### $ Synonym for  return () %Monadic generalisation of }. &Monadic generalisation of 'if'. 'Like %, but the condition is also monadic. -$%&'$%&'$%&'      !"#$%&'()*+ , - . / 012312456718912:12;12<12=12>12?12@12A12B12C12D12E12F12G12H12I12J12K12L12M1NO1NP1NQ1NR1NS1TU1TV1TW1TX1TY1TZ1T[1T\1T]1T^1T_1T`1Ta1Tb1Tc1Td1Te1Tf1Tg1Th1Ti1Tj1Tk1Tl1Tm1no1np1nq1nr1ns1nt1nu1nv1nw1nx1ny1nz1{|1{}1{~1{1{1{1{1{1{1{1{1N1T18181818181818181818181818181811111111111 !11111111111111111#!      11111111 1!1"1#1$1%1&1'1(1)1*1+1,1-1.1/101112131415161718191:1;1<1=1>1?1@1A1B1C1D1E1F1G1H11I1J11K1L1M1N1O1P111Q11R1S1T1U1V1W11X1Y1Z1[1\1]1^1_1`1a1b11c1d1e1f1g1h1i1j1k1l1m1n1o1p1q1r1s1t1u1v1w1x1y1z1{11|1}1~11111111155511111111111111111111111111111111111111111111 rosso-1.0System.IO.Rosso1Data.Set.Rosso1Data.Tuple.Rosso1Data.Maybe.Rosso1Data.Map.Rosso1Data.MultiMap.Rosso1Data.List.Rosso1Data.Either.Rosso1Data.Bool.Rosso1Control.Monad.Rosso1readFileStrict insertManymapFstmapSnd pairApplytoMaybeextractMultiMapfromListtoListempty singletoninsert insertListinsertManyListsnulllookup deleteList extractListextractEachListWithKeyaltermaxViewelems descElemsassocs descAssocs dropEachElemextractEachElemsortAndGroupOn alistCollect zipFiltermapLeftmapRightxornop concatMapMifMwhenMbase System.IOreadFileprintghc-prim GHC.TypesIOGHC.IO.Handle.TypesHandle(openBinaryTempFileWithDefaultPermissions"openTempFileWithDefaultPermissionsopenBinaryTempFile openTempFilefixIOwithBinaryFilewithFilehPrinthReadyreadIOreadLn appendFile writeFileinteract getContentsgetLinegetCharputStrLnputStrputCharGHC.IO.Handle.FDopenBinaryFileopenFileisEOFstderrstdin GHC.IO.HandlehShowhSetNewlineModehSetBinaryModehIsTerminalDevicehGetEchohSetEcho hIsSeekable hGetBuffering hIsWritable hIsReadable hIsClosedhIsOpenhTellhSeekhSetPosnhGetPosn hGetEncoding hSetEncoding hSetBuffering hLookAheadhIsEOF hSetFileSize hFileSizehClose HandlePosnGHC.IO.Handle.TexthGetBufNonBlocking hGetBufSomehGetBufhPutBufNonBlockinghPutBuf hPutStrLnhPutStrhPutChar hGetContentshGetLinehGetChar hWaitForInputGHC.IO.EncodingmkTextEncodinglocaleEncodingutf32beutf32leutf32utf16beutf16leutf16utf8_bomutf8latin1stdouthFlushnoNewlineTranslationnativeNewlineModeuniversalNewlineMode nativeNewline NoBuffering LineBufferingBlockBuffering BufferModeLFCRLFNewlineoutputNLinputNL NewlineModeGHC.IO.Encoding.Types TextEncoding GHC.IO.Device AbsoluteSeek RelativeSeek SeekFromEndSeekMode GHC.IO.IOModeReadMode WriteMode AppendMode ReadWriteModeIOModeGHC.IOFilePathcontainers-0.4.0.0Data.Setvalid showTreeWithshowTreeminView deleteFindMax deleteFindMin splitMembersplitfromDistinctAscList fromAscList toAscListfold mapMonotonicmap partitionfilter intersection differenceunionunions deleteMax deleteMinfindMaxfindMin isSubsetOfisProperSubsetOfdelete notMembermembersize\\Set Data.Tuplefstsndswapuncurrycurry Data.Maybe fromMaybeJustNothingmapMaybe catMaybes listToMaybe maybeToListfromJust isNothingisJustmaybeMaybeData.Map splitLookupfromAscListWithKeyfromAscListWith toDescListfromListWithKey fromListWithkeysSetkeys foldlWithKey foldrWithKey foldWithKeymapKeysMonotonic mapKeysWithmapKeysmapAccumRWithKeymapAccumWithKeymapAccum mapWithKeymapEitherWithKey mapEithermapMaybeWithKeypartitionWithKey filterWithKeyisProperSubmapOfByisProperSubmapOf isSubmapOfBy isSubmapOfintersectionWithKeyintersectionWithdifferenceWithKeydifferenceWith unionWithKey unionWith unionsWithmaxViewWithKeyminViewWithKeyupdateMaxWithKeyupdateMinWithKey updateMax updateMindeleteAtupdateAtelemAt lookupIndex findIndexupdateLookupWithKey updateWithKeyupdate adjustWithKeyadjustinsertLookupWithKey'insertLookupWithKeyinsertWithKey' insertWithKey insertWith' insertWithfindWithDefault!Map listToAssocsGHC.Base++foldrGHC.Listconcatzip Data.Listunwordswordsunlineslinesproductsumfoldl1'foldl1foldl'unfoldrsortBysort permutations subsequencestailsinitsgroupBygroupdeleteFirstsByunzip7unzip6unzip5unzip4zipWith7zipWith6zipWith5zipWith4zip7zip6zip5zip4genericReplicate genericIndexgenericSplitAt genericDrop genericTake genericLength minimumBy maximumByminimummaximuminsertBy mapAccumR mapAccumL transpose intercalate intersperse intersectBy intersectunionBydeleteBynubBynub isInfixOf isSuffixOf isPrefixOf findIndicesfind elemIndices elemIndex stripPrefixunzip3unzipzipWith3zipWithzip3!! concatMapnotElemelemallanyorandreversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiteratescanr1scanrfoldr1scanl1scanlfoldllengthinitlasttailhead Data.EitherEitherLeftRightpartitionEithersrightsleftseither otherwiseGHC.BoolBoolFalseTrue GHC.Classesnot||&& Control.Monadwhenfail>>=>>returnMonadFunctor MonadPlusmfilterapliftM5liftM4liftM3liftM2liftMunless replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMjoinvoidforever<=<>=>msumforM_forMfilterMguardmapM_mapM sequence_sequence=<<mplusmzerofmap