h$@0      !"#$%&'()*+,-./None, !#$'(-/2356789>?& 0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None, !#$'(-/2356789>?%focus"What to do with the focused value.=The interpretation of the commands is up to the context APIs.focusProduce no changes focus Delete it focus"Set its value to the provided one focusAbstraction over the modification of an element of a datastructure.6It is composable using the standard typeclasses, e.g.: lookupAndDelete :: Monad m => Focus a m (Maybe a) lookupAndDelete = lookup <* deletefocusReproduces the behaviour of  Data.Map. http://hackage.haskell.org/package/containers-0.6.0.1/docs/Data-Map-Lazy.html#v:membermember.focusReproduces the behaviour of  Data.Map. http://hackage.haskell.org/package/containers-0.6.0.1/docs/Data-Map-Lazy.html#v:lookuplookup.focusReproduces the behaviour of  Data.Map. http://hackage.haskell.org/package/containers-0.6.0.1/docs/Data-Map-Lazy.html#v:findWithDefaultfindWithDefault with a better name. focusReproduces the behaviour of  Data.Map. http://hackage.haskell.org/package/containers-0.6.0.1/docs/Data-Map-Lazy.html#v:deletedelete. focus-Lookup an element and delete it if it exists.Same as  <*  . focusReproduces the behaviour of  Data.Map. http://hackage.haskell.org/package/containers-0.6.0.1/docs/Data-Map-Lazy.html#v:insertinsert. focusReproduces the behaviour of  Data.Map. http://hackage.haskell.org/package/containers-0.6.0.1/docs/Data-Map-Lazy.html#v:insertWith insertWith with a better name. focusReproduces the behaviour of  Data.Map. http://hackage.haskell.org/package/containers-0.6.0.1/docs/Data-Map-Lazy.html#v:alteralter.focusReproduces the behaviour of  Data.Map. http://hackage.haskell.org/package/containers-0.6.0.1/docs/Data-Map-Lazy.html#v:adjustadjust.focusReproduces the behaviour of  Data.Map. http://hackage.haskell.org/package/containers-0.6.0.1/docs/Data-Map-Lazy.html#v:updateupdate.focus)Same as all of the following expressions:'f g -> fmap (fmap f) lookup <* adjust g f g -> liftStateFn (f &&& g) f g -> liftStateFn ((,)  $ f  * g)focusLift a pure state monad.focus&Lift a pure state-monad-like function.focusLift pure functions which handle the cases of presence and absence of the element.focusLift pure functions which handle the cases of presence and absence of the element and produce no result.focusA monadic version of .focusA monadic version of  .focusA monadic version of  .focusA monadic version of  .focusA monadic version of .focusA monadic version of .focusLift monadic functions which handle the cases of presence and absence of the element.focusLift monadic functions which handle the cases of presence and absence of the element and produce no result.focusMap the Focus input.focus"Extends the output with the input.focus-Extends the output with the change performed. focusExtends the output with a projection on the change that was performed.!focusExtends the output with a flag, signaling whether a change, which is not , has been introduced."focus6Extends the output with a flag, signaling whether the  change has been introduced.#focusExtends the output with a flag, signaling whether an item will be inserted. That is, it didn't exist before and a  change is introduced.$focusExtend the output with a flag, signaling how the size will be affected by the change.%focus Focus on the contents of a TVar.$focus Decreased focusDidn't change focus Increased &  !"#$%&  !"#$%       !"#$%&'()*+,-./01234561781791:;1<=1>?1>@12A12B4CD1EF1GH4CI12J1KL12M45N1OP1OQ1RS1TU12V1WX1WY1WZ1W[1W\1W]1W^1W_1W`1Wa1Wb1Wc4de4df4dg1hi1hj1hk1hl1hm1hn1ho1hp1hq1hr1hs1ht1hu1hv1hw1hx1hy1hz1h{1h|1h}1h~1h1O1O1O1O1O1O1O1O1O1O1O1O12121212111111111111111121212111111114d4d4d4d4d4d4d4d111111O1O1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1O1O1O1O1O1O111111111111111112121212121211111111111111111111111112121212121212124444444111111144441O1O451:441111111114411111111111111111111111111111111111111111111111111111111111111K1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111R1R1R1R1R1R1R1R1R1R1R1R1R1R11111111G1G1G1G1G1G1G1G1G1G1G1G11111111111111111111111111111111111111111111111111<1<1<1<1<1<1<1<1<1<1<1<1<1<1<1<1<1<1<1<1<1<1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111T1T1T1T1T1T1T1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E111111111111111111111111111111111111111111111111111111111111111111E1E1E1E1E1E1E1E1E1E1E1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111 11111111111111111111111111111111111111111111111111111111111111111111:1: 1: 1: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1  1 1 1  1  1h 1h 1h 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 1 1 1 1  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1  1 1 1 1O 1O 1O 1O 1O 1O 1O 1O 1O 1O 1 1 1 1 1  1 1  1 1 1 1 1 1 1 17 17 17 17 17 17 1717 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1> 1> 1> 1 1 1 1 1 1 1 1 1 1 1 1 1  1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 4d 4d 4d                   "focus-1.0.3-JEZZABaOMvxDSSPLMxvDuGFocus Focus.PreludeChangeLeaveRemoveSetmemberlookuplookupWithDefaultdeletelookupAndDeleteinsert insertOrMergealteradjustupdateaccessAndAdjust liftState liftStateFncases unitCaseslookupWithDefaultMinsertMinsertOrMergeMalterMadjustMupdateMcasesM unitCasesM mappingInputextractingInputextractingChangeprojectingChangetestingIfModifiestestingIfRemovestestingIfInsertstestingSizeChange onTVarValue$fMonoidChange$fSemigroupChange$fMonadTransFocus $fMonadFocus$fApplicativeFocus$fFunctorChange $fEqChange $fOrdChange $fShowChange$fFunctorFocusbaseGHC.Base++ghc-primGHC.PrimseqGHC.Listfilterzip GHC.Stable newStablePtr System.IOprint Data.Tuplefstsnd otherwiseassert GHC.MagiclazyGHC.IO.Exception assertError Debug.TracetraceinlinemapGHC.Exts groupWith$coerceGHC.Real fromIntegral realToFrac Control.Monadguard Data.DynamictoDynjoinGHC.EnumBoundedminBoundmaxBoundEnumpredsuccenumFromThenTo enumFromTo enumFromThenenumFromfromEnumtoEnum GHC.ClassesEq==/= GHC.FloatFloatinglog1mexplog1pexpexpm1log1patanhacoshasinhtanhcoshsinhatanacosasintancossinlogBase**sqrtlogpiexp Fractionalrecip fromRational/IntegraldivModquotRemmoddivrem toIntegerquotMonad>>>>=return Data.DataDatagmapMogmapMpgmapMgmapQigmapQgmapQrgmapQlgmapT dataCast2 dataCast1 dataTypeOftoConstrgfoldlgunfoldFunctorfmap<$GHC.NumNumsignumabs*+negate fromInteger-Ord<<=>maxmincompare>=GHC.ReadRead readListPrecreadPrec readsPrecreadListReal toRational RealFloatatan2isIEEEisNegativeZeroisDenormalized isInfiniteisNaN scaleFloat significandexponent encodeFloat decodeFloat floatRange floatRadix floatDigitsRealFracfloorceilingroundproperFractiontruncateGHC.ShowShowshowListshow showsPrecGHC.IxIx rangeSizeinRangerangeindexData.Typeable.InternalTypeableControl.Monad.FixMonadFixmfixControl.Monad.Fail MonadFailfail Data.StringIsString fromString Applicative<*liftA2*><*>pure Data.FoldableFoldablefoldr'foldMap'foldelemminimummaximumfoldr1productsumfoldl1foldl'nulltoListfoldrfoldllengthfoldMapData.Traversable Traversablesequence sequenceAtraversemapM GHC.GenericsGeneric Semigroupstimes<>sconcatMonoidmconcatmemptymappend GHC.TypesBoolFalseTrueCharDoubleFloatIntGHC.IntInt8Int16Int32Int64integer-wired-inGHC.Integer.TypeInteger GHC.MaybeMaybeJustNothingOrderingGTLTEQRatioRational RealWorld StablePtrIOWordGHC.WordWord8Word16Word32Word64GHC.PtrPtrFunPtr Data.EitherEitherRightLeft CoercibleTyCon Data.Complexphase magnitudepolarcismkPolar conjugateimagPartrealPartComplex:+ Data.Fixed showFixedmod'divMod'div'FixedMkFixed HasResolution resolutionE0UniE1DeciE2CentiE3MilliE6MicroE9NanoE12PicoData.Functor.ComposeCompose getComposeData.Semigroupoption mtimesDefaultdiffcycle1MingetMinMaxgetMaxArgArgMinArgMaxFirstgetFirstLastgetLast WrappedMonoid WrapMonoid unwrapMonoidOption getOptionsortWith tyconModule tyconUQname isNorepType mkNoRepType mkCharConstr mkRealConstrmkIntegralConstr mkCharType mkFloatType mkIntTypemaxConstrIndex constrIndex indexConstr isAlgType readConstr showConstr constrFixity constrFieldsdataTypeConstrsmkConstr mkDataType repConstr constrRep constrType dataTypeRep dataTypeName fromConstrM fromConstrB fromConstrDataTypeConstrDataRepNoRepCharRepAlgRepIntRepFloatRep ConstrRep CharConstr FloatConstr AlgConstr IntConstrConIndexFixityPrefixInfixSystem.TimeouttimeoutTimeoutControl.ConcurrentthreadWaitWriteSTMthreadWaitReadSTMthreadWaitWritethreadWaitReadrunInUnboundThreadrunInBoundThreadisCurrentThreadBoundforkOSWithUnmaskforkOS forkFinallyrtsSupportsBoundThreadsControl.Concurrent.ChanwriteList2ChangetChanContentsdupChanreadChan writeChannewChanChanControl.Concurrent.QSem signalQSemwaitQSemnewQSemQSemControl.Concurrent.QSemN signalQSemN waitQSemNnewQSemNQSemNControl.Monad.IO.ClassMonadIOliftIO Data.RatioapproxRational Data.STRef modifySTRef' modifySTRef Data.Unique hashUnique newUniqueUniqueGHC.StableName eqStableNamehashStableNamemakeStableName StableNameSystem.EnvironmentgetEnvironment withProgNamewithArgsunsetEnvsetEnv lookupEnvgetEnv getProgNamegetArgs!System.Environment.ExecutablePathgetExecutablePath System.Exitdie exitSuccess exitFailureexitWith System.Mem performGCperformMajorGCperformMinorGC Text.PrintfhPrintfprintfmfilter<$!>unless replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMforever<=<>=>filterM Data.Version makeVersion parseVersion showVersionVersion versionBranch versionTags traceMarkerIO traceMarker traceEventIO traceEvent traceStack traceShowMtraceM traceShowId traceShowtraceId putTraceMsgtraceIOfoldMapDefault fmapDefault mapAccumR mapAccumLforMforControl.Applicativeoptional WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipList Control.ArrowleftApp^<<<<^>>^^>>returnAArrow&&&secondfirst***arrKleisli runKleisli ArrowZero zeroArrow ArrowPlus<+> ArrowChoicerightleft|||+++ ArrowApplyapp ArrowMonad ArrowLooploopData.Functor.IdentityIdentity runIdentity(openBinaryTempFileWithDefaultPermissions"openTempFileWithDefaultPermissionsopenBinaryTempFile openTempFilefixIOwithBinaryFilewithFilehPrinthReadylocaleEncodingreadIOreadLn appendFile writeFilereadFileinteract getContentsgetLinegetCharputStrLnputStrputChar GHC.IO.HandlehShowhSetNewlineModehSetBinaryModehIsTerminalDevicehGetEchohSetEcho hIsSeekable hGetBuffering hIsWritable hIsReadable hIsClosedhIsOpenhTellhSeekhSetPosnhGetPosn hGetEncoding hSetEncoding hSetBuffering hLookAheadisEOFhIsEOF hSetFileSize hFileSizehClose HandlePosnGHC.IO.Handle.FDopenBinaryFileopenFilestderrstdinGHC.IO.Handle.TexthGetBufNonBlocking hGetBufSomehGetBufhPutBufNonBlockinghPutBuf hPutStrLnhPutStrhPutChar hGetContentshGetLinehGetChar hWaitForInput GHC.Conc.IO registerDelay threadDelay closeFdWithioManagerCapabilitiesChangedensureIOManagerIsRunningGHC.Conc.Signal runHandlers setHandlerSignal HandlerFunControl.Concurrent.MVar mkWeakMVaraddMVarFinalizermodifyMVarMaskedmodifyMVarMasked_ modifyMVar modifyMVar_withMVarMaskedwithMVarswapMVarGHC.IO.EncodingmkTextEncodingchar8utf32beutf32leutf32utf16beutf16leutf16utf8_bomutf8latin1System.IO.Unsafe unsafeFixIOControl.ExceptionallowInterruptcatchesHandlerControl.Monad.ST.ImpfixSTSystem.IO.Error catchIOErrorannotateIOError modifyIOErrorioeSetFileName ioeSetHandleioeSetLocationioeSetErrorStringioeSetErrorTypeioeGetFileName ioeGetHandleioeGetLocationioeGetErrorStringioeGetErrorTypeisResourceVanishedErrorTypeisUserErrorTypeisPermissionErrorTypeisIllegalOperationErrorTypeisEOFErrorTypeisFullErrorTypeisAlreadyInUseErrorTypeisDoesNotExistErrorTypeisAlreadyExistsErrorTyperesourceVanishedErrorType userErrorTypepermissionErrorTypeillegalOperationErrorType eofErrorType fullErrorTypealreadyInUseErrorTypedoesNotExistErrorTypealreadyExistsErrorTypeisResourceVanishedError isUserErrorisPermissionErrorisIllegalOperation isEOFError isFullErrorisAlreadyInUseErrorisDoesNotExistErrorisAlreadyExistsError mkIOError tryIOErrorControl.Exception.BasebracketOnErrorbracket_finallybracket onExceptiontryJusttry mapException handleJusthandle catchJustPatternMatchFail RecSelError RecConError RecUpdError NoMethodError TypeErrorNonTerminationNestedAtomically GHC.Conc.SyncgetUncaughtExceptionHandlersetUncaughtExceptionHandler reportErrorreportStackOverflow writeTVarreadTVar readTVarIO newTVarIOnewTVarcatchSTMthrowSTMorElseretry atomically unsafeIOToSTMnewStablePtrPrimMVarmkWeakThreadIdthreadCapability threadStatus runSparksparpseq labelThreadyield myThreadIdthrowTo killThread childHandler numSparksgetNumProcessorssetNumCapabilitiesgetNumCapabilitiesnumCapabilitiesforkOnWithUnmaskforkOnforkIOWithUnmaskforkIOdisableAllocationLimitenableAllocationLimitgetAllocationCountersetAllocationCounterreportHeapOverflowThreadId BlockReasonBlockedOnOtherBlockedOnForeignCall BlockedOnSTMBlockedOnException BlockedOnMVarBlockedOnBlackHole ThreadStatus ThreadDied ThreadBlocked ThreadRunningThreadFinishedPrimMVarSTMTVar dynTypeRepdynAppdynApply fromDynamicfromDynDynamicuntangleioError ioException heapOverflow stackOverflowasyncExceptionFromExceptionasyncExceptionToExceptioncannotCompactMutablecannotCompactPinnedcannotCompactFunctionallocationLimitExceededblockedIndefinitelyOnSTMblockedIndefinitelyOnMVarBlockedIndefinitelyOnMVarBlockedIndefinitelyOnSTMDeadlockAllocationLimitExceededCompactionFailedAssertionFailedSomeAsyncExceptionAsyncException UserInterrupt ThreadKilled StackOverflow HeapOverflowArrayExceptionIndexOutOfBoundsUndefinedElementFixIOExceptionExitCode ExitSuccess ExitFailure IOErrorType InterruptedResourceVanished TimeExpiredUnsupportedOperation HardwareFaultInappropriateTypeInvalidArgument OtherError ProtocolError SystemErrorUnsatisfiedConstraints UserErrorPermissionDeniedIllegalOperationResourceExhausted ResourceBusy NoSuchThingEOF AlreadyExistshFlushstdoutGHC.IO.Handle.TypesnoNewlineTranslationnativeNewlineModeuniversalNewlineMode nativeNewlineHandle BufferModeBlockBuffering NoBuffering LineBufferingNewlineLFCRLF NewlineModeinputNLoutputNL GHC.IO.DeviceSeekMode SeekFromEnd AbsoluteSeek RelativeSeek Data.IORefatomicWriteIORefatomicModifyIORef modifyIORef' modifyIORef mkWeakIORefGHC.IO.Encoding.Types TextEncodingForeign.ForeignPtr.ImpmallocForeignPtrArray0mallocForeignPtrArraynewForeignPtrEnvwithForeignPtr newForeignPtrGHC.ForeignPtrfinalizeForeignPtrplusForeignPtrcastForeignPtrtouchForeignPtrnewForeignPtr_addForeignPtrFinalizerEnvaddForeignPtrFinalizermallocForeignPtrBytesmallocForeignPtr ForeignPtr FinalizerPtrFinalizerEnvPtr GHC.IORefatomicModifyIORef' writeIORef readIORefnewIORefIORefGHC.IOevaluateuninterruptibleMaskuninterruptibleMask_maskmask_getMaskingState interruptiblethrowIOcatchstToIOFilePath MaskingStateMaskedUninterruptibleUnmaskedMaskedInterruptible userErrorunsupportedOperation IOExceptionIOError ioe_filename ioe_errnoioe_description ioe_location ioe_handleioe_type GHC.Exceptionthrow ErrorCallErrorCallWithLocationGHC.Exception.Type ExceptiondisplayException toException fromExceptionArithExceptionRatioZeroDenominatorDenormal DivideByZeroLossOfPrecision UnderflowOverflow Data.TypeabletypeOf7typeOf6typeOf5typeOf4typeOf3typeOf2typeOf1 rnfTypeReptypeRepFingerprint typeRepTyCon typeRepArgs splitTyConAppmkFunTy funResultTygcast2gcast1gcasteqTcast showsTypeReptypeReptypeOfTypeReprnfTyContyConFingerprint tyConName tyConModule tyConPackageData.Functor.ConstConstgetConstfindnotElem minimumBy maximumByallanyorand concatMapconcatmsumasum sequence_ sequenceA_forM_mapM_for_ traverse_foldlMfoldrM Data.MonoidApgetApData.Semigroup.Internal stimesMonoidstimesIdempotentDualgetDualEndoappEndoAllgetAllAnygetAnySumgetSumProduct getProductAltgetAlt Unsafe.Coerce unsafeCoerce Data.OldListunwordswordsunlineslinesunfoldrsortBysort permutations subsequencestailsinitsgroupBygroupdeleteFirstsByunzip7unzip6unzip5unzip4zipWith7zipWith6zipWith5zipWith4zip7zip6zip5zip4genericReplicate genericIndexgenericSplitAt genericDrop genericTake genericLengthinsertBy partition transpose intercalate intersperse intersectBy intersectunionByunion\\deleteBynubBynub isInfixOf isSuffixOf isPrefixOf findIndices findIndex elemIndices elemIndex stripPrefix dropWhileEnd Data.Char isSeparatorisNumberisMarkisLetter digitToInt Text.Readread readMaybe readEitherreads fromRightfromLeftisRightisLeftpartitionEithersrightsleftseitherData.Ord comparingDowngetDown Data.Proxy asProxyTypeOfProxyKProxyControl.Category>>><<<Categoryid.Data.Type.Equality:~:Refl:~~:HRefl Foreign.Ptr intPtrToPtr ptrToIntPtr wordPtrToPtr ptrToWordPtrfreeHaskellFunPtrWordPtrIntPtr GHC.IO.IOModeIOMode ReadWriteMode AppendModeReadMode WriteModeForeign.StorableStorablepokepeek pokeByteOff peekByteOff peekElemOff pokeElemOffcastPtrToStablePtrcastStablePtrToPtrdeRefStablePtr freeStablePtrcastPtrToFunPtrcastFunPtrToPtr castFunPtr nullFunPtrminusPtralignPtrplusPtrcastPtrnullPtrNumericshowOctshowHex showIntAtBase showHFloat showGFloatAlt showFFloatAlt showGFloat showFFloat showEFloatshowInt readSigned readFloatreadHexreadDecreadOctreadInt lexDigits readLitChar lexLitCharlex readParenText.ParserCombinators.ReadPrec readS_to_Prec readPrec_to_S readP_to_Prec readPrec_to_PReadPrecText.ParserCombinators.ReadP readS_to_P readP_to_SReadSReadPfromRat floatToDigits showFloat bitReverse64 bitReverse32 bitReverse16 bitReverse8 byteSwap64 byteSwap32 byteSwap16 GHC.UnicodetoTitletoUppertoLowerisLowerisUpperisPrint isControl isAlphaNumisAlphaisSymbol isPunctuation isHexDigit isOctDigitisDigitisSpace isAsciiUpper isAsciiLowerisLatin1isAsciigeneralCategoryGeneralCategory NotAssigned PrivateUse SurrogateParagraphSeparator LineSeparatorSpace OtherSymbolModifierSymbolCurrencySymbol MathSymbolOtherPunctuation FinalQuote InitialQuoteClosePunctuationOpenPunctuationDashPunctuationConnectorPunctuation OtherNumber LetterNumber DecimalNumber EnclosingMarkSpacingCombiningMarkNonSpacingMark OtherLetterModifierLetterTitlecaseLetterLowercaseLetterUppercaseLetterFormatControl Data.BitstoIntegralSizedpopCountDefaulttestBitDefault bitDefaultBitspopCountrotateRrotateL unsafeShiftRshiftR unsafeShiftLshiftLisSignedbitSize bitSizeMaybetestBit complementBitclearBitsetBitbitzeroBitsrotateshift complementxor.&..|. FiniteBitscountTrailingZeros finiteBitSizecountLeadingZeroslcmgcd^^^oddeven showSigned denominator numerator%GHC.Charchr GHC.STRef writeSTRef readSTRefnewSTRefSTRefGHC.STrunSTST intToDigit showLitChar showParen showStringshowCharshowsShowSunzip3unzipzipWith3zipWithzip3!!reversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiterate'iteratescanr1scanrscanl'scanl1scanlfoldl1'initlasttailhead Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybefromJust isNothingisJustmaybe Data.Boolbool Data.Function&onfix Data.Functorvoid$><&><$>swapuncurrycurry GHC.IO.UnsafeunsafeInterleaveIOunsafeDupablePerformIOunsafePerformIOGHC.MVar isEmptyMVar tryReadMVar tryPutMVar tryTakeMVarputMVarreadMVartakeMVarnewMVar newEmptyMVarMVarsubtractasTypeOfuntil$!flipconstordapliftM5liftM4liftM3liftM2liftMwhen=<<liftA3liftA<**> Alternativemanysomeempty<|> MonadPlusmzeromplusStringGHC.Err undefinederrorWithoutStackTraceerrorstimesIdempotentMonoid SomeException&&||nottransformers-0.5.6.2!Control.Monad.Trans.Writer.Strict mapWriterT execWriterT mapWriter execWriter runWriterWriterWriterT runWriterT Control.Monad.Trans.State.Strict withStateT mapStateT execStateT evalStateT withStatemapState execState evalStaterunStateStateStateT runStateTControl.Monad.Trans.Readerask withReaderT mapReaderT withReader mapReader runReaderReaderReaderT runReaderTControl.Monad.Trans.MaybeliftPass liftListen liftCatch liftCallCCexceptToMaybeTmaybeToExceptT mapMaybeTMaybeT runMaybeTControl.Monad.Trans.ExceptcatchEthrowE withExceptT mapExceptT runExceptT withExcept mapExcept runExceptexceptExceptExceptTControl.Monad.Trans.Cont liftLocalshiftTresetT withContTmapContT evalContTresetwithContmapContevalContrunContcontContContTrunContTControl.Monad.Trans.Class MonadTranslift