dO+ None Case analysis for the   type.  bool a b p evaluates to a when p is False, and evaluates to b when p is True.Like  6 but returns the shown value instead of a third value.Like  r but returning unit in an arbitrary monad. Allows for convenient use in do-notation. Note that the application of  # is not an action in the monad, as   is in the   monad. T... = do x <- ... traceM $ "x: " ++ show x y <- ... traceM $ "y: " ++ show yLike  , but uses $ on the argument to convert it to a . D... = do x <- ... traceShowM $ x y <- ... traceShowM $ x + yFlipped version of . is a reverse application operator. This provides notational convenience. Its precedence is one higher than that of the forward application operator , which allows  to be nested in .The & function takes two lists and returns 8 if the first list is a subsequence of the second list. x y is equivalent to  x ( y).Examples5isSubsequenceOf "GHC" "The Glorious Haskell Compiler"True)isSubsequenceOf ['a','d'..'z'] ['a'..'z']True!isSubsequenceOf [1..10] [10,9..0]FalseHDecompose a list into its head and tail. If the list is empty, returns $. If the list is non-empty, returns  (x, xs) , where x is the head of the list and xs its tail.RSort a list by comparing the results of a key function applied to each element. sortOn f is equivalent to sortBy . comparing f8, but has the performance advantage of only evaluating f| once for each element in the input list. This is called the decorate-sort-undecorate paradigm, or Schwartzian transform. Z !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\ ]^_`abcdefghi jklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY  Z      !"# $%&'&()*+,+-./ 0123 04567"89:9;<=>?>@>A>B CD CE9FGHIJKLMNONPNQNRST<U<V<W<XYZ[\]^_>`>a Cbcd<e<fghij9k Clmn<ocp<qrst[uLvSwxyz{|} ~    << $ [    2222222222222222222222222222222222         !"#$#%#&#'#(#)#*#+#,6-./01234h5h6h7h8h9h:h;h<h=h>h?h@hAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh[h\h]h^h_h`hahbhchdhehfhghhhihjhkhlhmhnhohpqrqsqtquqvqwqwYxYyYzY{Y|Y}Y~YYYYYYYzzzzzzzzzzNNNNNNNNNNNNNNNNNNNNNNNN))))))))))))      !"#$%&'()*+,-./0123456789:;<=>?@ABBCDEFGHIJKLMNOOPP2Q2R2S2T2T2U2U2V2V2W2W2X2X2Y2Y2Z2[2\2]2^2_2`2a2b2c2d2efghijkjljmjnjojpjqrsrtrurvrwrxyzy{y|y}~~~~~~~~~~~~~~~~222[[[[[[[[[[[[[[[[[[[[[[[ [ [ [ [ [[[[[[ !"#$%$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^]_]`]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]{]|]}]~]]]]]]mmmmmmmmmcccccccccccccccccccccccccccccccccccssss<<<< < < < < <<<<<<<<<<<<<<<>>>> >!>"#$%&%'()(*+,+-+./01234567&8&9&:&;&<&=&>&?&@&A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P&Q&R&S&TUVUWUXUYUZU[U\U]U^+_+`+a9b9c9d9e9fghijklmnopqrstuvwxyz{|}~ C C C C C C C C C Cbasep_6qTC5DhI2elF6UfhYXZHU8 BasePreludebool traceShowIdtraceM traceShowM$>&isSubsequenceOfunconssortOnghc-prim GHC.TypesBoolbase Debug.Trace traceShowtracetraceIOIOGHC.ShowshowGHC.BaseString<$$True Data.Foldableelem Data.OldList subsequencesNothingJust++GHC.ErrerrorGHC.PrimseqGHC.Listfilterzip System.IOprint Data.Tuplefstsnd otherwiseassert GHC.MagiclazyGHC.IO.Exception assertErrorinlinemapGHC.Exts groupWith undefinedGHC.Num fromInteger-GHC.Real fromRationalGHC.EnumenumFrom enumFromThen enumFromToenumFromThenTo GHC.Classes==>=negatefail>>=>>fmapreturnControl.Monad.Fixmfix Control.Arrowarrapp|||loop Data.String fromString fromIntegral realToFrac toInteger toRational Control.MonadguardData.Typeable.InternalmkAppTyjoin<*>pureBoundedEnumEq GHC.FloatFloating FractionalIntegralMonad Data.DataDataFunctorNumOrdGHC.ReadReadReal RealFloatRealFracShowGHC.ArrIxTypeableMonadFixIsString ApplicativeFoldableData.Traversable Traversable GHC.GenericsGenericCharDoubleFloatIntGHC.IntInt8Int16Int32Int64 integer-gmpGHC.Integer.TypeIntegerOrderingRatioRational RealWorldWordGHC.WordWord8Word16Word32Word64 Data.EitherEitherTypeRepFalseLeftRightLTEQGTuntangle ioException heapOverflow stackOverflowallocationLimitExceededblockedIndefinitelyOnSTMblockedIndefinitelyOnMVar ioe_filename ioe_errnoioe_description ioe_locationioe_type ioe_handleIOError InterruptedResourceVanished TimeExpiredUnsupportedOperation HardwareFaultInappropriateTypeInvalidArgument OtherError ProtocolError SystemErrorUnsatisfiedConstraints UserErrorPermissionDeniedIllegalOperationEOFResourceExhausted ResourceBusy NoSuchThing AlreadyExistsunsupportedOperation Text.PrintfhPrintfprintfSystem.TimeouttimeoutSystem.Mem.StableName eqStableNamehashStableNamemakeStableName StableName System.Mem performGCperformMajorGCperformMinorGC System.Exitdie exitSuccess exitFailureexitWithSystem.EnvironmentgetEnvironment withProgNamewithArgsunsetEnvsetEnv lookupEnvgetEnv getProgNamegetArgs!System.Environment.ExecutablePathgetExecutablePath Data.Unique hashUnique newUniqueUnique Data.STRef modifySTRef' modifySTRef Data.RatioapproxRational Data.Fixed showFixedmod'divMod'div'MkFixedFixed resolution HasResolutionE0UniE1DeciE2CentiE3MilliE6MicroE9NanoE12Pico Data.Complexphase magnitudepolarcismkPolar conjugateimagPartrealPart:+ComplexData.Bifunctorsecondfirstbimap BifunctorControl.ConcurrentthreadWaitWriteSTMthreadWaitReadSTMthreadWaitWritethreadWaitReadrunInUnboundThreadrunInBoundThreadisCurrentThreadBoundforkOS forkFinallyrtsSupportsBoundThreadsControl.Concurrent.QSemN signalQSemN waitQSemNnewQSemNQSemNControl.Concurrent.QSem signalQSemwaitQSemnewQSemQSemControl.Concurrent.ChanwriteList2ChangetChanContents isEmptyChan unGetChandupChanreadChan writeChannewChanChansortWith traceMarkerIO traceMarker traceEventIO traceEvent traceStacktraceId putTraceMsg tyconModule tyconUQname isNorepType mkNoRepType mkCharConstr mkRealConstrmkIntegralConstr mkCharType mkFloatType mkIntTypemaxConstrIndex constrIndex indexConstr isAlgType readConstr showConstr constrFixity constrFieldsdataTypeConstrsmkConstr mkDataType repConstr constrRep constrType dataTypeRep dataTypeName fromConstrM fromConstrB fromConstrgmapMogmapMpgmapMgmapQigmapQgmapQrgmapQlgmapT dataCast2 dataCast1 dataTypeOftoConstrgunfoldgfoldlDataTypeConstrNoRepCharRepFloatRepIntRepAlgRepDataRep CharConstr FloatConstr IntConstr AlgConstr ConstrRepConIndexInfixPrefixFixity Data.Version makeVersion parseVersion showVersion versionTags versionBranchVersionmfilter<$!>unless replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMforever<=<>=>filterMfoldMapDefault fmapDefault mapAccumR mapAccumLforMforsequencemapM sequenceAtraverseControl.ApplicativeoptionalgetConstConst unwrapMonad WrapMonad WrappedMonad unwrapArrow WrapArrow WrappedArrow getZipListZipListleftApp^<<<<^>>^^>>returnA&&&***Arrow runKleisliKleisli zeroArrow ArrowZero<+> ArrowPlus+++rightleft ArrowChoice ArrowApply ArrowMonad ArrowLoopreadIOreadLn appendFile writeFilereadFileinteract getContentsgetLinegetCharputStrLnputStrputChar GHC.IO.HandlehClose GHC.Conc.IO registerDelay threadDelay closeFdWithioManagerCapabilitiesChangedensureIOManagerIsRunningSystem.IO.Error catchIOErrorannotateIOError modifyIOErrorioeSetFileName ioeSetHandleioeSetLocationioeSetErrorStringioeSetErrorTypeioeGetFileName ioeGetHandleioeGetLocationioeGetErrorStringioeGetErrorTypeisUserErrorTypeisPermissionErrorTypeisIllegalOperationErrorTypeisEOFErrorTypeisFullErrorTypeisAlreadyInUseErrorTypeisDoesNotExistErrorTypeisAlreadyExistsErrorType userErrorTypepermissionErrorTypeillegalOperationErrorType eofErrorType fullErrorTypealreadyInUseErrorTypedoesNotExistErrorTypealreadyExistsErrorType isUserErrorisPermissionErrorisIllegalOperation isEOFError isFullErrorisAlreadyInUseErrorisDoesNotExistErrorisAlreadyExistsError mkIOError tryIOErrorGHC.Conc.Signal runHandlers setHandlerSignal HandlerFunSystem.IO.Unsafe unsafeFixIOControl.ExceptionallowInterruptcatchesHandlerControl.Concurrent.MVar mkWeakMVaraddMVarFinalizermodifyMVarMaskedmodifyMVarMasked_ modifyMVar modifyMVar_withMVarMaskedwithMVarswapMVarControl.Exception.BasebracketOnErrorbracket_finallybracket onExceptiontryJusttry mapException handleJusthandle catchJustcatchPatternMatchFail RecSelError RecConError RecUpdError NoMethodErrorNonTerminationNestedAtomically GHC.Conc.SyncgetUncaughtExceptionHandlersetUncaughtExceptionHandler reportErrorreportStackOverflow writeTVarreadTVar readTVarIO newTVarIOnewTVaralwaysalwaysSucceedscatchSTMthrowSTMorElseretry atomically unsafeIOToSTMmkWeakThreadIdthreadCapability threadStatus runSparksparpseq labelThreadyield myThreadIdthrowTo killThread childHandler numSparksgetNumProcessorssetNumCapabilitiesgetNumCapabilitiesnumCapabilitiesforkOnWithUnmaskforkOnforkIOWithUnmaskforkIOdisableAllocationLimitenableAllocationLimitgetAllocationCountersetAllocationCounterThreadIdBlockedOnOtherBlockedOnForeignCall BlockedOnSTMBlockedOnExceptionBlockedOnBlackHole BlockedOnMVar BlockReason ThreadDied ThreadBlockedThreadFinished ThreadRunning ThreadStatusSTMTVarioErrorasyncExceptionFromExceptionasyncExceptionToExceptionBlockedIndefinitelyOnMVarBlockedIndefinitelyOnSTMDeadlockAllocationLimitExceededAssertionFailedSomeAsyncException UserInterrupt ThreadKilled HeapOverflow StackOverflowAsyncExceptionUndefinedElementIndexOutOfBoundsArrayException ExitFailure ExitSuccessExitCode IOErrorTypeGHC.IO.Handle.TypesHandleForeign.StorableStorable Data.Dynamic dynTypeRepdynAppdynApply fromDynamicfromDyntoDynDynamic Data.IORefatomicWriteIORefatomicModifyIORef'atomicModifyIORef modifyIORef' modifyIORef mkWeakIORef GHC.IORef writeIORef readIORefnewIORefIORefGHC.IOevaluateuninterruptibleMaskuninterruptibleMask_maskmask_getMaskingStatethrowIOunsafeInterleaveIOunsafeDupablePerformIOunsafePerformIOstToIOFilePathMaskedUninterruptibleMaskedInterruptibleUnmasked MaskingState userError IOException GHC.Exceptionthrow SomeExceptiondisplayException fromException toException Exception ErrorCallRatioZeroDenominatorDenormal DivideByZeroLossOfPrecision UnderflowOverflowArithExceptionGHC.MVar isEmptyMVar tryReadMVar tryPutMVar tryTakeMVarputMVarreadMVartakeMVarnewMVar newEmptyMVarMVar Text.Readread readMaybe readEitherreadsfindnotElem minimumBy maximumByallanyorand concatMapconcatmsumasum sequence_ sequenceA_forM_mapM_for_ traverse_foldlMfoldrMproductsumminimummaximumlengthnulltoListfoldl1foldr1foldl'foldlfoldr'foldrfoldMapfold Data.Monoid<>getDualDualappEndoEndogetAllAllgetAnyAnygetSumSum getProductProductgetFirstFirstgetLastLastgetAltAltisRightisLeftpartitionEithersrightsleftseither Data.Typeablegcast2gcast1gcasteqTcastrnfTyCon rnfTypeRep showsTypeReptypeOf7typeOf6typeOf5typeOf4typeOf3typeOf2typeOf1typeOftypeReptypeRepFingerprint tyConString typeRepArgs typeRepTyConmkTyCon3 funResultTy splitTyConAppmkFunTy mkTyConApp tyConName tyConModule tyConPackagetyConFingerprintTyCon Typeable1 Typeable2 Typeable3 Typeable4 Typeable5 Typeable6 Typeable7NumericshowOctshowHex showIntAtBase showGFloatAlt showFFloatAlt showGFloat showFFloat showEFloatshowInt readSigned readFloatreadHexreadDecreadOctreadInt Data.ProxyProxyunwordswordsunlineslinesunfoldrsortBysort permutationstailsinitsgroupBygroupdeleteFirstsByunzip7unzip6unzip5unzip4zipWith7zipWith6zipWith5zipWith4zip7zip6zip5zip4genericReplicate genericIndexgenericSplitAt genericDrop genericTake genericLengthinsertByinsert partition transpose intercalate intersperse intersectBy intersectunionByunion\\deleteBydeletenubBynub isInfixOf isSuffixOf isPrefixOf findIndices findIndex elemIndices elemIndex stripPrefix dropWhileEnd Data.Char isSeparatorisSymbol isPunctuationisNumberisMarkisLettergeneralCategory digitToInt NotAssigned PrivateUse SurrogateFormatControlParagraphSeparator LineSeparatorSpace OtherSymbolModifierSymbolCurrencySymbol MathSymbolOtherPunctuation FinalQuote InitialQuoteClosePunctuationOpenPunctuationDashPunctuationConnectorPunctuation OtherNumber LetterNumber DecimalNumber EnclosingMarkSpacingCombiningMarkNonSpacingMark OtherLetterModifierLetterTitlecaseLetterLowercaseLetterUppercaseLetterGeneralCategoryControl.Category>>><<<.idCategoryData.Type.EqualityRefl:~:Data.Ord comparingDown byteSwap64 byteSwap32 byteSwap16 lexDigits readLitChar lexLitCharlex readParen readListPrecreadPrecreadList readsPrecfromRat floatToDigits showFloatatanhacoshasinhtanhcoshsinhatanacosasintancossinlogBase**sqrtlogexppiatan2isIEEEisNegativeZeroisDenormalized isInfiniteisNaN scaleFloat significandexponent encodeFloat decodeFloat floatRange floatDigits floatRadixText.ParserCombinators.ReadPrec readS_to_Prec readPrec_to_S readP_to_Prec readPrec_to_PReadPrecText.ParserCombinators.ReadP readS_to_P readP_to_SReadSReadP GHC.STRef writeSTRef readSTRefnewSTRefSTRef GHC.UnicodetoTitletoUppertoLowerisLowerisUpperisPrint isControl isAlphaNumisAlpha isHexDigit isOctDigitisDigitisSpace isAsciiUpper isAsciiLowerisLatin1isAscii Data.BitstoIntegralSizedpopCountDefaulttestBitDefault bitDefaultpopCountrotateRrotateL unsafeShiftRshiftR unsafeShiftLshiftLisSignedbitSize bitSizeMaybetestBit complementBitclearBitsetBitbitzeroBitsrotateshift complementxor.|..&.BitscountTrailingZeroscountLeadingZeros finiteBitSize FiniteBits rangeSizeinRangeindexrangelcmgcd^^^oddeven showSigned denominator numerator%divModquotRemmoddivremquotrecip/floorceilingroundtruncateproperFractionmaxBoundminBoundfromEnumtoEnumpredsuccGHC.Charchr Data.Functiononfix Data.Functorvoid<$>GHC.STrunSTfixSTST intToDigit showLitChar showParen showStringshowCharshowsShowSshowList showsPrecunzip3unzipzipWith3zipWithzip3!!lookupreversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiteratescanr1scanrscanl'scanl1scanlfoldl1'initlasttailhead Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybefromJust isNothingisJustmaybeswapuncurrycurrysubtractsignumabs*+asTypeOfuntil$!flipconstordapliftM5liftM4liftM3liftM2liftMwhen=<<liftA3liftA2liftA<**>MaybemconcatmappendmemptyMonoid<**>manysome<|>empty Alternativemplusmzero MonadPlus Unsafe.Coerce unsafeCoerce/=compare<=&&||not<>maxmin