aC`t      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR 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  Safe-Inferred  wtuvwxyz{|}~      Safe-Inferred Safe-InferredNoneDCall once at the start, then call repeatedly to get Time values out QLike offsetTime, but results will never decrease (though they may stay the same)  Safe-Inferred !"#  !"## "! !"# Safe-InferredEFind the first instance of needle in haystack. ) The first element of the returned tuple  is the prefix of haystack before needle is matched. The second  is the remainder of haystack, starting with the match.  Examples:  + breakOn "::" "a::b::c" == ("a", "::b::c") * breakOn "/" "foobar" == ("foobar", "") Laws: a \needle haystack -> let (prefix,match) = breakOn needle haystack in prefix ++ match == haystack F Similar to E#, but searches from the end of the  string. 9The first element of the returned tuple is the prefix of haystack ' up to and including the last match of needle. The second is the  remainder of haystack, following the match. . breakOnEnd "::" "a::b::c" == ("a::b::", "c") G0Break a list into pieces separated by the first ? list argument, consuming the delimiter. An empty delimiter is 0 invalid, and will cause an error to be raised.  Examples:  8 splitOn "\r\n" "a\r\nb\r\nd\r\ne" == ["a","b","d","e"] : splitOn "aaa" "aaaXaaaXaaaXaaa" == ["","X","X","X",""] . splitOn "x" "x" == ["",""] + splitOn "x" "" == [""] and 6 \s x -> s /= "" ==> intercalate s (splitOn s x) == x B \c x -> splitOn [c] x == split (==c) x H7Splits a list into components delimited by separators, @ where the predicate returns True for a separator element. The C resulting components do not contain the separators. Two adjacent = separators result in an empty component in the output. eg. 0 split (=='a') "aabbaca" == ["","","bb","c",""] ! split (=='a') "" == [""] I5Return the prefix of the second string if its suffix " matches the entire first string.  Examples: * stripSuffix "bar" "foobar" == Just "foo" * stripSuffix "" "baz" == Just "baz" ' stripSuffix "foo" "quux" == Nothing ($%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ(4531267*+,;<:98$'%&().-@A0I/=>?BCDEFGHJ($%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ Safe-InferredKL klmnopqKLKLKL Safe-InferredMNOPQ rstuvwxMNOPQOPMNQMNOPQ  Safe-InferredRSTUVWXYZ[\]^_`a9yz{|}~RSTUVWXYZ[\]^_`aRSTUVWXYZ[^_\]`aRSTUVWXYZ[\]^_`a  Safe-Inferredbc%bcbcbc  Safe-InferreddSPrint an exception, but if that exception itself contains exceptions, simply print  <NestedException>;. Since Haskell is a lazy language it is possible to throw ^ exceptions that are themselves undefined. This function is useful to report them to users. eCIgnore any exceptions thrown by the action and continue as normal. defghijklmno[     defghijklmno fdegikhjlmno defghijklmno Nonepqpqpqpq  Safe-InferredrOn GHC 7.6 and above with the  -threaded flag, brackets a call to s. ! On lower versions (which lack s/) this function just runs the argument action. s A version of sF that works on all versions of GHC, but has no effect before GHC 7.6. rsC !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYrsrsrsNoner  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY\]^_`abcdefghijklmnopqrsrrsfdegikhjlmnoRSTUVWXY^_\]`aOPMNQKL4531267*+,;<:98$'%&().-@A0I/=>?BCDEFGHJ# "!bcpq Z !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde f g h i j k l m n o p q r s t u v w x y z { | } ~        ! "#$#%#& '()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#z#{#|#}#~##################                                !"#$%&' ()*)+)+),)-).)/)/)0)1)2)3)4)5)6 7898:8;8<=>=?=@=A=B=C=D=E=F=GHIHJHKHLHMHNHOPQPRPSPTUVUWUXUYZ[Z\Z]Z^Z_Z`ZaZbZcdefgfhfifjfkflfmfnfo p q r s t u v w x y z {|}|~|||||| extra-0.1System.Environment.ExtraData.IORef.ExtraData.List.ExtraSystem.IO.Extra Numeric.ExtraSystem.Time.ExtraData.Tuple.ExtraData.Either.ExtraControl.Monad.ExtraSystem.Directory.ExtraControl.Exception.ExtraSystem.Info.ExtraControl.Concurrent.ExtraExtrabaseSystem.Environment lookupEnv!System.Environment.ExecutablePathgetExecutablePath Data.IORefatomicWriteIORefatomicModifyIORef' modifyIORef' Data.List dropWhileEndreadFileEncoding readFileUTF8readFileBinary readFile'readFileEncoding' readFileUTF8'readFileBinary'writeFileEncoding writeFileUTF8writeFileBinarywithTemporaryFile captureOutput withBufferingshowDP intToDouble intToFloat floatToDouble doubleToFloatsleep subtractTimeshowTime offsetTimeoffsetTimeIncreasedurationfst3snd3thd3concat3concat2dupechopreprepsfordisjointdistinctlistunconsunsnoctakeEnddropEnd concatUnzip takeWhileEndtrimLeft trimRighttrimloweruppertrimByword1sortOngroupOnnubOn groupSort groupSortOnmergemergeByreplacebreakEndspanEndwordsBylinesBy firstJustbreakOn breakOnEndsplitOnsplit stripSuffixchunksOf writeIORef'atomicWriteIORef'fromLeft fromRightisLeftisRight fromEitherwhenJustunit partitionM concatMapMloopMwhileMifMnotM||^&&^anyMallMorMandMfindM firstJustMwithCurrentDirectorygetDirectoryContentsRecursive showExceptionignoreretrycatch_ catchJust_handle_ handleJust_try_tryJust_ catchBool handleBooltryBool isWindowsgetProcessorCountwithNumCapabilitiessetNumCapabilities System.IOprintghc-prim GHC.TypesIOgetLineGHC.IO.Handle.TypesHandle(openBinaryTempFileWithDefaultPermissions"openTempFileWithDefaultPermissionsopenBinaryTempFile openTempFilefixIOwithBinaryFilewithFilehPrinthReadylocaleEncodingreadIOreadLn appendFile writeFilereadFileinteract getContentsgetCharputStrLnputStrputCharGHC.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.EncodingmkTextEncodingchar8utf32beutf32leutf32utf16beutf16leutf16utf8_bomutf8latin1stdouthFlushnoNewlineTranslationnativeNewlineModeuniversalNewlineMode nativeNewline NoBuffering LineBufferingBlockBuffering BufferModeLFCRLFNewlineoutputNLinputNL NewlineModeGHC.IO.Encoding.Types TextEncoding GHC.IO.Device AbsoluteSeek RelativeSeek SeekFromEndSeekMode GHC.IO.IOModeReadMode WriteMode AppendMode ReadWriteModeIOModeGHC.IOFilePathgetEnvironment withProgNamewithArgsgetEnv getProgNamegetArgsNumericshowOctshowHex showIntAtBase showGFloat showFFloat showEFloatshowInt readSigned readFloatreadHexreadDecreadOctreadIntGHC.Read lexDigits GHC.FloatfromRat floatToDigits showFloatGHC.Real showSigned Data.Tuplefstsndswapuncurrycurrydrop1GHC.Base++foldrGHC.Listconcatfilterzipmapunwordswordsunlineslinesproductsumfoldl1'foldl1foldl'unfoldrsortBysort permutations subsequencestailsinitsgroupBygroupdeleteFirstsByunzip7unzip6unzip5unzip4zipWith7zipWith6zipWith5zipWith4zip7zip6zip5zip4genericReplicate genericIndexgenericSplitAt genericDrop genericTake genericLength minimumBy maximumByminimummaximuminsertByinsert mapAccumR mapAccumL partition transpose intercalate intersperse intersectBy intersectunionByunion\\deleteBydeletenubBynub isInfixOf isSuffixOf isPrefixOf findIndices findIndexfind elemIndices elemIndex stripPrefixunzip3unzipzipWith3zipWithzip3!! concatMaplookupnotElemelemallanyorandreversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiteratescanr1scanrfoldr1scanl1scanlfoldllengthnullinitlasttailheadatomicModifyIORef modifyIORef mkWeakIORef GHC.IORef writeIORef readIORefnewIORefIORef Data.EitherEitherLeftRightpartitionEithersrightsleftseitherfail>>=>>fmapreturn Control.MonadguardliftMMonadFunctor MonadPlusmfilterapliftM5liftM4liftM3liftM2unlesswhen replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMjoinvoidforever<=<>=>msumforM_forMfilterMmapM_mapM sequence_sequence=<<mplusmzerodirectory-1.2.0.1System.DirectorygetTemporaryDirectorygetUserDocumentsDirectorygetAppUserDataDirectorygetHomeDirectorygetModificationTime doesFileExistdoesDirectoryExistsetCurrentDirectorygetCurrentDirectorygetDirectoryContentsfindFilefindExecutablemakeRelativeToCurrentDirectorycanonicalizePathcopyFile renameFilerenameDirectory removeFileremoveDirectoryRecursiveremoveDirectorycreateDirectoryIfMissingcreateDirectorycopyPermissionssetPermissionsgetPermissionssetOwnerSearchablesetOwnerExecutablesetOwnerWritablesetOwnerReadableemptyPermissions searchable executablewritablereadable PermissionsboolassertControl.ExceptionallowInterruptcatchesHandlerControl.Exception.BasebracketOnErrorbracket_finallybracket onExceptiontryJusttry mapException handleJusthandle catchJustcatchPatternMatchFail RecSelError RecConError RecUpdError NoMethodErrorNonTerminationNestedAtomically GHC.Conc.SyncthrowToGHC.IO.ExceptionioErrorBlockedIndefinitelyOnMVarBlockedIndefinitelyOnSTMDeadlockAssertionFailed StackOverflow HeapOverflow ThreadKilled UserInterruptAsyncExceptionIndexOutOfBoundsUndefinedElementArrayExceptionevaluateuninterruptibleMaskuninterruptibleMask_maskmask_blockedgetMaskingStateunblockblockthrowIOUnmaskedMaskedInterruptibleMaskedUninterruptible MaskingState IOException GHC.Exceptionthrow SomeException fromException toException Exception ErrorCallOverflow UnderflowLossOfPrecision DivideByZeroDenormalRatioZeroDenominatorArithExceptiongetNumberOfProcessors System.Info compilerNamearchoscompilerVersionControl.ConcurrentthreadWaitWritethreadWaitReadrunInUnboundThreadrunInBoundThreadisCurrentThreadBoundforkOSnmergeIOmergeIO forkFinallyrtsSupportsBoundThreadsControl.Concurrent.SampleVarisEmptySampleVarwriteSampleVar readSampleVaremptySampleVar newSampleVarnewEmptySampleVar SampleVarControl.Concurrent.QSemN signalQSemN waitQSemNnewQSemNQSemNControl.Concurrent.QSem signalQSemwaitQSemnewQSemQSemControl.Concurrent.ChanwriteList2ChangetChanContents isEmptyChan unGetChandupChanreadChan writeChannewChanChan GHC.Conc.IO threadDelayControl.Concurrent.MVar mkWeakMVaraddMVarFinalizermodifyMVarMaskedmodifyMVarMasked_ modifyMVar modifyMVar_withMVarswapMVarreadMVarmkWeakThreadIdthreadCapabilityyield myThreadId killThreadgetNumCapabilitiesforkOnWithUnmaskforkOnforkIOWithUnmaskforkIOUnmaskedforkIOThreadIdGHC.MVar isEmptyMVar tryPutMVar tryTakeMVarputMVartakeMVarnewMVar newEmptyMVarMVar