h&T1       Safe-Inferred-"%&)*-/125689:;<>  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ -  Safe-Inferred-"%&)*-/125689:;<>   Safe-Inferred-"%&)*-/125689:;<>   Safe-Inferred-"%&)*-/125689:;<>  Safe-Inferred-"%&)*-/125689:;<>   Safe-Inferred-"%&)*-/125689:;<> y  Safe-Inferred-"%&)*-/125689:;<>    Safe-Inferred-"%&)*-/125689:;<>    Safe-Inferred-"%&)*-/125689:;<>    Safe-Inferred-"%&)*-/125689:;<>e   Safe-Inferred-"%&)*-/125689:;<>  Safe-Inferred-"%&)*-/125689:;<>1-domainParsed and validated schema."You can only produce it using the  quasi-quoter or the . function and generate the code from it using .domainDeclare datatypes and typeclass instances from a schema definition according to the provided settings.*Use this function in combination with the  quasi-quoter or the  function.  For examples refer to their documentation.Call it on the top-level (where you declare your module members).domain0Quasi-quoter, which parses a YAML schema into a  expression.Use  to generate the code from it.Example {-# LANGUAGE QuasiQuotes, TemplateHaskell, StandaloneDeriving, DeriveGeneric, DeriveDataTypeable, DeriveLift, FlexibleInstances, MultiParamTypeClasses, DataKinds, TypeFamilies #-} module Model where import Data.Text (Text) import Data.Word (Word16, Word32, Word64) import Domain  (Just (False, True))  [| Host: sum: ip: Ip name: Text Ip: sum: v4: Word32 v6: Word128 Word128: product: part1: Word64 part2: Word64 |] domain4Load and parse a YAML file into a schema definition.Use  to generate the code from it.Example {-# LANGUAGE TemplateHaskell, StandaloneDeriving, DeriveGeneric, DeriveDataTypeable, DeriveLift, FlexibleInstances, MultiParamTypeClasses, DataKinds, TypeFamilies #-} module Model where import Data.Text (Text) import Data.Word (Word16, Word32, Word64) import Domain  (Just (True, False))  =<<  "domain.yaml" domain4Combination of all derivers exported by this module.domainDerives 65 for enums or sums having no members in all variants.Requires to have the StandaloneDeriving compiler extension enabled.domainDerives 3 for enums.Requires to have the StandaloneDeriving compiler extension enabled.domainDerives .Requires to have the StandaloneDeriving compiler extension enabled. domainDerives ?.Requires to have the StandaloneDeriving compiler extension enabled. domainDerives .Requires to have the StandaloneDeriving compiler extension enabled. domainDerives .Requires to have the StandaloneDeriving and  DeriveGeneric compiler extensions enabled. domainDerives i.Requires to have the StandaloneDeriving and DeriveDataTypeable compiler extensions enabled. domainDerives .Requires to have the StandaloneDeriving and DeriveDataTypeable compiler extensions enabled.domain Generates -based instances of  .domainDerives .Requires to have the StandaloneDeriving and  DeriveLift compiler extensions enabled.domainDerives  with unprefixed field names.For each field of a product generates instances mapping to their values.(For each constructor of a sum maps to a  tuple of members of that constructor, unless there's no members, in which case it maps to .$For each variant of an enum maps to * signaling whether the value equals to it.Please notice that if you choose to generate unprefixed record field accessors, it will conflict with this deriver, since it's gonna generate duplicate instances.domainGenerates instances of   for wrappers, enums and sums, providing mappings from labels to constructors. Sum ExampleHaving the following schema: 'Host: sum: ip: Ip name: Text *The following instances will be generated: instance a ~ Ip => IsLabel "ip" (a -> Host) where fromLabel = IpHost instance a ~ Text => IsLabel "name" (a -> Host) where fromLabel = NameHost *In case you're wondering what this tilde (~-) constraint business is about, refer to the  #type-equality-constraintType Equality Constraint section. Enum ExampleHaving the following schema: /TransportProtocol: enum: - tcp - udp *The following instances will be generated: instance IsLabel "tcp" TransportProtocol where fromLabel = TcpTransportProtocol instance IsLabel "udp" TransportProtocol where fromLabel = UdpTransportProtocol domainGenerates instances of   for enums, sums and products, providing accessors to their components.Product ExampleHaving the following schema: NetworkAddress: product: protocol: TransportProtocol host: Host port: Word16 *The following instances will be generated: instance a ~ TransportProtocol => IsLabel "protocol" (NetworkAddress -> a) where fromLabel (NetworkAddress a _ _) = a instance a ~ Host => IsLabel "host" (NetworkAddress -> a) where fromLabel (NetworkAddress _ b _) = b instance a ~ Word16 => IsLabel "port" (NetworkAddress -> a) where fromLabel (NetworkAddress _ _ c) = c *In case you're wondering what this tilde (~-) constraint business is about, refer to the  #type-equality-constraintType Equality Constraint section. Sum ExampleHaving the following schema: 'Host: sum: ip: Ip name: Text *The following instances will be generated: instance a ~ Maybe Ip => IsLabel "ip" (Host -> a) where fromLabel (IpHost a) = Just a fromLabel _ = Nothing instance a ~ Maybe Text => IsLabel "name" (Host -> a) where fromLabel (NameHost a) = Just a fromLabel _ = Nothing *In case you're wondering what this tilde (~-) constraint business is about, refer to the  #type-equality-constraintType Equality Constraint section. Enum ExampleHaving the following schema: /TransportProtocol: enum: - tcp - udp *The following instances will be generated: instance a ~ Bool => IsLabel "tcp" (TransportProtocol -> a) where fromLabel TcpTransportProtocol = True fromLabel _ = False instance a ~ Bool => IsLabel "udp" (TransportProtocol -> a) where fromLabel UdpTransportProtocol = True fromLabel _ = False *In case you're wondering what this tilde (~-) constraint business is about, refer to the  #type-equality-constraintType Equality Constraint section.domainGenerates instances of   for sums and products, providing mappers over their components.Product ExampleHaving the following schema: NetworkAddress: product: protocol: TransportProtocol host: Host port: Word16 *The following instances will be generated: instance mapper ~ (TransportProtocol -> TransportProtocol) => IsLabel "protocol" (mapper -> NetworkAddress -> NetworkAddress) where fromLabel mapper (NetworkAddress a b c) = NetworkAddress (mapper a) b c instance mapper ~ (Host -> Host) => IsLabel "host" (mapper -> NetworkAddress -> NetworkAddress) where fromLabel mapper (NetworkAddress a b c) = NetworkAddress a (mapper b) c instance mapper ~ (Word16 -> Word16) => IsLabel "port" (mapper -> NetworkAddress -> NetworkAddress) where fromLabel mapper (NetworkAddress a b c) = NetworkAddress a b (mapper c) *In case you're wondering what this tilde (~-) constraint business is about, refer to the  #type-equality-constraintType Equality Constraint section. Sum ExampleHaving the following schema: 'Host: sum: ip: Ip name: Text *The following instances will be generated: instance mapper ~ (Ip -> Ip) => IsLabel "ip" (mapper -> Host -> Host) where fromLabel fn (IpHost a) = IpHost (fn a) fromLabel _ a = a instance mapper ~ (Text -> Text) => IsLabel "name" (mapper -> Host -> Host) where fromLabel fn (NameHost a) = NameHost (fn a) fromLabel _ a = a *In case you're wondering what this tilde (~-) constraint business is about, refer to the  #type-equality-constraintType Equality Constraint section.domainField naming. When nothing, no fields will be generated. Otherwise the first wrapped boolean specifies, whether to prefix the names with underscore, and the second - whether to prefix with the type name. Please notice that when you choose not to prefix with the type name you need to have the DuplicateRecords extension enabled.domain"Which instances to derive and how.domainSchema definition.domainTemplate Haskell action splicing the generated code on declaration level.domain1  !"#$%&'()*%+,%+-%./%01%23%24%&5%&6(78%9:%;<(7=%&>%?@%&A()B%CD%CE%FG%?H%?I%?J%?K%?L%MN%OP%OQ%&R%ST%SU%SV%SW%SX%SY%SZ%S[%S\%S]%S^%S_(`a(`b(`c%de%df%dg%dh%di%dj%dk%dl%dm%dn%do%dp%dq%dr%ds%dt%du%dv%dw%dx%dy%dz%d{%C|%C}%C~%C%C%C%C%C%C%C%C%C%&%&%&%&%%%%%%%%%%%%%%%%&%&%&%%%%%%%%(`(`(`(`(`(`(`(`%%%%%%C%C%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%C%C%C%C%C%C%%%%%%%%%%%%%%%%%&%&%&%&%&%&%%%%%%%%%%%%%%%%%%%%%%%%&%&%&%&%&%&%%(((%&((((%%%%%%%((((%C%C()%.((%%%%%%%%%%&%&(%O%O(%%%%%%(`(`(`%%%%%%&%&%&%&%&%&%&%&%&%&%&%&%&%&%&%&%&%&%&%&%&%&%&%&%&%%%%%%%%%%%%%%%%2%2%2%%%%%%%%%%%%%%%%%%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%%%%%%%%%%%%%%C%C%C%C%C%C%C%C%C%C%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%d%d%d%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%O%O%O%.%.%.%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9%9%9%9%9%9%9%9%9%9%9%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%M%M%M%M%M%M%M%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0%0%0%0%0%0%0%0%0%0%0%0%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%;%;%;%;%;%;%;%;%;%;%;%;%;%%%F%F%F%F%F%F%F%F%F%F %F %F %F %F % % % % % % % % % % % % % % % % % % % % % % %  % % %  % % % %  % %  % % % % % % %  % % % %  % % % % % % %  % % % % % % % % % % % % %  % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %? % % %  % % % % %  %  %  %  %  %  %  %  %  %  %  %  % %  %  %  %  %  % % % % % % % % %  %  %  %  % %  %    % % % % % % %  %  % %  %  % %  %  % %  % % %  %  % % % % % % % % %  % %                                                          %domain-0.1.1.4-8dhH7NF7aS6CZVrJhSHBt3DomainDomain.PreludeDomain.Models.TypeStringDomain.Models.TypeCentricDocDomain.Attoparsec.GeneralDomain.Attoparsec.TypeStringDomain.TH.InstanceDecDomain.TH.InstanceDecsDomain.TH.TypeDec Domain.TextDomain.Resolvers.TypeCentricDoc%Domain.YamlUnscrambler.TypeCentricDoc Domain.Docs*domain-core-0.1.0.3-4l3KoVOJPEQ3bbwSkn4nIfDomainCore.DeriverDeriverSchemadeclareschema loadSchema stdDeriver enumDeriverboundedDeriver showDeriver eqDeriver ordDerivergenericDeriver dataDerivertypeableDeriverhashableDeriver liftDeriverhasFieldDeriverconstructorIsLabelDeriveraccessorIsLabelDerivermapperIsLabelDeriver$fLiftBoxedRepSchemabaseGHC.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.MonadguardIsList fromListNtoListItemfromList Data.DynamictoDyn Unsafe.CoerceunsafeEqualityProof unsafeCoerce#joinGHC.EnumBoundedminBoundmaxBoundEnumtoEnumfromEnumpredsuccenumFrom enumFromThen enumFromToenumFromThenTo GHC.ClassesEq==/= GHC.FloatFloatingacos**acoshasinasinhatanatanhcoscoshexpexpm1loglog1mexplog1plog1pexplogBasepisinsinhsqrttanhtan Fractional/ fromRationalrecipIntegraldivdivModmodquotquotRem toIntegerremMonad>>=return>> Data.DataData dataCast2 dataCast1 dataTypeOfgfoldlgmapMgmapMogmapMpgmapQgmapQigmapQlgmapQrgmapTtoConstrgunfoldFunctorfmap<$GHC.NumNum- fromIntegernegate+*signumabsOrdcompareminmax><=>=<GHC.ReadReadreadList readsPrecreadPrec readListPrecReal toRational RealFloat decodeFloatatan2 encodeFloatexponent floatDigits floatRadix floatRangeisDenormalizedisIEEE isInfiniteisNaNisNegativeZero significand scaleFloatRealFracfloorceilingproperFractiontruncateroundGHC.ShowShow showsPrecshowListshowGHC.IxIxrange rangeSizeindexinRangeData.Typeable.InternalTypeableControl.Monad.FixMonadFixmfixControl.Monad.Fail MonadFailfail Data.StringIsString fromString Applicative<*liftA2pure*><*> Data.FoldableFoldablelengthelemfoldl'foldl1foldr1maximumminimumnullproductsumfoldfoldMapfoldMap'foldr'foldlfoldrData.Traversable Traversable sequenceAmapMtraversesequence GHC.GenericsGeneric Semigroup<>Monoidmemptymconcatmappend GHC.RecordsHasFieldgetFieldtemplate-haskellLanguage.Haskell.TH.SyntaxLift GHC.TypesBoolFalseTrueStringCharDoubleFloatIntGHC.IntInt8Int16Int32Int64 ghc-bignumGHC.Num.IntegerInteger GHC.MaybeMaybeNothingJustOrderingGTLTEQRatioRational RealWorld StablePtrIOWordGHC.WordWord8Word16Word32Word64GHC.PtrPtrFunPtr Data.EitherEitherRightLeftNonEmpty:| CoercibleUnsafeEquality UnsafeReflTyCon Data.OldListdeleteGHC.STST Data.VersionVersion versionBranch versionTags||not&&GHC.Exception.Type SomeExceptionGHC.ErrerrorerrorWithoutStackTrace undefined$!<**>=<<apasTypeOfconstflipliftAliftA3liftMliftM2liftM3liftM4liftM5orduntilwhen Alternativeempty<|>somemany MonadPlusmplusmzerosubtractGHC.MVar isEmptyMVar newEmptyMVarnewMVarputMVarreadMVartakeMVar tryPutMVar tryReadMVar tryTakeMVarMVar GHC.IO.UnsafeunsafeDupablePerformIOunsafeInterleaveIOunsafePerformIO makeVersioncurryswapuncurry Data.Functor$><$><&>void Data.Function&fixon Data.Boolbool Data.Maybe catMaybesfromJust fromMaybeisJust isNothing listToMaybemapMaybemaybe maybeToList!!breakcycledrop dropWhilefoldl1'headinititerateiterate'lastlookuprepeat replicatereversescanlscanl'scanl1scanrscanr1spansplitAttailtake takeWhileunzipunzip3zip3zipWithzipWith3 intToDigitshowChar showLitChar showParen showStringshowsShowSrunST GHC.STRefnewSTRef readSTRef writeSTRefSTRefGHC.Charchr%^^^ denominatorevengcdlcm numeratorodd showSignedGHC.Bits bitDefaultpopCountDefaulttestBitDefaulttoIntegralSizedBits.|.bitbitSize bitSizeMaybeclearBit complement complementBitisSignedpopCountrotaterotateLrotateRsetBitshiftshiftLshiftRtestBit unsafeShiftL unsafeShiftRxor.&.zeroBits FiniteBitscountTrailingZeros finiteBitSizecountLeadingZeros GHC.UnicodegeneralCategoryisAlpha isAlphaNumisAscii isAsciiLower isAsciiUpper isControlisDigit isHexDigitisLatin1isLower isOctDigitisPrint isPunctuationisSpaceisSymbolisUppertoLowertoTitletoUpperGeneralCategoryClosePunctuationControlConnectorPunctuationCurrencySymbolDashPunctuation DecimalNumber EnclosingMark FinalQuoteFormat InitialQuote LetterNumber LineSeparatorLowercaseLetter MathSymbolModifierLetterModifierSymbolNonSpacingMark NotAssignedOpenPunctuation OtherLetter OtherNumberOtherPunctuation OtherSymbolParagraphSeparator PrivateUseSpaceSpacingCombiningMark SurrogateUppercaseLetterTitlecaseLetter bitReverse16 bitReverse32 bitReverse64 bitReverse8 byteSwap16 byteSwap32 byteSwap64 floatToDigitsfromRat showFloatText.ParserCombinators.ReadP readP_to_S readS_to_PReadPReadSText.ParserCombinators.ReadPrec readP_to_Prec readPrec_to_P readPrec_to_S readS_to_PrecReadPreclex lexDigits lexLitChar readLitChar readParenNumericreadBinreadDec readFloatreadHexreadIntreadOct readSignedshowBin showEFloat showFFloat showFFloatAlt showGFloat showGFloatAlt showHFloatshowHexshowInt showIntAtBaseshowOctalignPtr castFunPtrcastFunPtrToPtrcastPtrcastPtrToFunPtrminusPtr nullFunPtrnullPtrplusPtrData.Type.Equality:~:Refl:~~:HReflControl.Category<<<>>>Categoryid. Data.Proxy asProxyTypeOfKProxyProxyeitherfromLeft fromRightisLeftisRightleftspartitionEithersrights Text.Readread readEither readMaybereads Data.Char digitToIntisLetterisMarkisNumber isSeparator Data.BitsoneBitsAndgetAndIffgetIffIorgetIorXorgetXor unsafeCoerceunsafeCoerceAddrunsafeCoerceUnliftedcastPtrToStablePtrcastStablePtrToPtrdeRefStablePtr freeStablePtrForeign.StorableStorable alignmentsizeOfpeek peekByteOff peekElemOffpoke pokeElemOff pokeByteOff Foreign.PtrfreeHaskellFunPtr intPtrToPtr ptrToIntPtr ptrToWordPtr wordPtrToPtrIntPtrWordPtrData.Ordclamp comparingDowngetDownData.Semigroup.InternalAllgetAllAnygetAnyDualgetDualEndoappEndoProduct getProductSumgetSum Data.MonoidApgetAp\\deleteBydeleteFirstsBy dropWhileEnd elemIndex elemIndices findIndex findIndices genericDrop genericIndex genericLengthgenericReplicategenericSplitAt genericTakegroupgroupByinitsinsertinsertBy intercalate intersect intersectBy intersperse isInfixOf isPrefixOf isSuffixOflinesnubnubBy partition permutations singletonsortsortBy stripPrefix subsequencestails transposeunfoldrunionunionByunlinesunwordsunzip4unzip5unzip6unzip7wordszip4zip5zip6zip7zipWith4zipWith5zipWith6zipWith7allandanyasumconcat concatMapfindfoldlMfoldrMforM_for_mapM_ maximumBy minimumBymsumnotElemor sequenceA_ sequence_ traverse_Data.Functor.ConstConstgetConstrnfTyCon trLiftedReptyConFingerprint tyConModule tyConName tyConPackage Data.TypeablecasteqT funResultTygcastgcast1gcast2mkFunTy rnfTypeRep showsTypeRep splitTyConApptypeOftypeOf1typeOf2typeOf3typeOf4typeOf5typeOf6typeOf7typeRep typeRepArgstypeRepFingerprint typeRepTyConTypeRepArithExceptionOverflow UnderflowDenormal DivideByZeroRatioZeroDenominatorLossOfPrecision Exception fromException toExceptiondisplayException GHC.Exceptionthrow ErrorCallErrorCallWithLocationunsupportedOperation userErrorIOError IOExceptionioe_description ioe_errno ioe_filename ioe_handle ioe_locationioe_typeGHC.IOcatchevaluategetMaskingState interruptiblemaskmask_stToIOthrowIOuninterruptibleMaskuninterruptibleMask_FilePath MaskingStateMaskedUninterruptibleUnmaskedMaskedInterruptible GHC.IORefatomicModifyIORef'newIORef readIORef writeIORefIORefGHC.ForeignPtraddForeignPtrFinalizeraddForeignPtrFinalizerEnvcastForeignPtrfinalizeForeignPtrmallocForeignPtrmallocForeignPtrBytesnewForeignPtr_plusForeignPtrtouchForeignPtrwithForeignPtrFinalizerEnvPtr FinalizerPtrForeign.ForeignPtr.ImpmallocForeignPtrArraymallocForeignPtrArray0 newForeignPtrnewForeignPtrEnv Data.IORefatomicModifyIORefatomicWriteIORef mkWeakIORef modifyIORef modifyIORef'allocationLimitExceededasyncExceptionFromExceptionasyncExceptionToExceptionblockedIndefinitelyOnMVarblockedIndefinitelyOnSTMcannotCompactFunctioncannotCompactMutablecannotCompactPinned heapOverflowioError ioException stackOverflowuntangleAllocationLimitExceededArrayExceptionIndexOutOfBoundsUndefinedElementAssertionFailedAsyncException StackOverflow HeapOverflow UserInterrupt ThreadKilledBlockedIndefinitelyOnMVarBlockedIndefinitelyOnSTMCompactionFailedDeadlockExitCode ExitSuccess ExitFailureFixIOException IOErrorType AlreadyExistsEOF HardwareFaultIllegalOperationInappropriateType InterruptedInvalidArgument NoSuchThing OtherErrorPermissionDenied ProtocolError ResourceBusyResourceExhaustedResourceVanished SystemError TimeExpiredUnsatisfiedConstraints UserErrorUnsupportedOperationSomeAsyncExceptiondynAppdynApply dynTypeRepfromDyn fromDynamicDynamic GHC.Conc.Sync atomicallycatchSTM childHandlerdisableAllocationLimitenableAllocationLimitforkIOforkIOWithUnmaskforkOnforkOnWithUnmaskgetAllocationCountergetNumCapabilitiesgetNumProcessorsgetUncaughtExceptionHandler killThread labelThreadmkWeakThreadId myThreadIdnewStablePtrPrimMVarnewTVar newTVarIOnumCapabilities numSparksparpseqreadTVar readTVarIO reportErrorreportHeapOverflowreportStackOverflowretry runSparkssetAllocationCountersetNumCapabilitiessetUncaughtExceptionHandlerthreadCapability threadStatusthrowSTMthrowTo unsafeIOToSTM writeTVaryield BlockReasonBlockedOnExceptionBlockedOnBlackHoleBlockedOnForeignCall BlockedOnMVar BlockedOnSTMBlockedOnOtherPrimMVarSTMTVarThreadId ThreadStatus ThreadDied ThreadBlocked ThreadRunningThreadFinishedControl.Exception.BasebracketbracketOnErrorbracket_ catchJustfinallyhandle handleJust mapException onExceptiontrytryJustNestedAtomically NoMethodErrorNonTerminationPatternMatchFail RecConError RecSelError RecUpdError TypeErrorSystem.IO.ErroralreadyExistsErrorTypealreadyInUseErrorTypeannotateIOError catchIOErrordoesNotExistErrorType eofErrorType fullErrorTypeillegalOperationErrorTypeioeGetErrorStringioeGetErrorTypeioeGetFileName ioeGetHandleioeGetLocationioeSetErrorStringioeSetErrorTypeioeSetFileName ioeSetHandleioeSetLocationisAlreadyExistsErrorisAlreadyExistsErrorTypeisAlreadyInUseErrorisAlreadyInUseErrorTypeisDoesNotExistErrorisDoesNotExistErrorType isEOFErrorisEOFErrorType isFullErrorisFullErrorTypeisIllegalOperationisIllegalOperationErrorTypeisPermissionErrorisPermissionErrorTypeisResourceVanishedErrorisResourceVanishedErrorType isUserErrorisUserErrorType mkIOError modifyIOErrorpermissionErrorTyperesourceVanishedErrorType tryIOError userErrorTypeControl.Monad.ST.ImpfixSTControl.ExceptionallowInterruptcatchesHandlerSystem.IO.Unsafe unsafeFixIOControl.Concurrent.MVaraddMVarFinalizer mkWeakMVar modifyMVarmodifyMVarMaskedmodifyMVarMasked_ modifyMVar_swapMVarwithMVarwithMVarMaskedGHC.Conc.Signal runHandlers setHandler HandlerFunSignal GHC.Conc.IO closeFdWithensureIOManagerIsRunningioManagerCapabilitiesChanged registerDelay threadDelay GHC.IO.HandlehClose appendFilegetChar getContentsgetLineinteractputCharputStrputStrLnreadFilereadIOreadLn writeFile Control.Arrow<<^>>^^<<^>>leftAppreturnAArrowarr&&&*** ArrowApplyapp ArrowChoice+++|||rightleft ArrowLooploop ArrowMonad ArrowPlus<+> ArrowZero zeroArrowKleisli runKleisliControl.Applicativeoptional WrappedMonad WrapMonad unwrapMonadZipList getZipList fmapDefaultfoldMapDefaultforforM mapAccumL mapAccumR flushEventLog putTraceMsg traceEvent traceEventIOtraceIOtraceIdtraceM traceMarker traceMarkerIO traceShow traceShowId traceShowM traceStack parseVersion showVersion<$!><=<>=>filterMfoldMfoldM_forever mapAndUnzipMmfilter replicateM replicateM_unlesszipWithM zipWithM_ Text.PrintfhPrintfprintf System.Mem performGCperformMajorGCperformMinorGC System.Exitdie exitFailure exitSuccessexitWith!System.Environment.ExecutablePathgetExecutablePathSystem.EnvironmentgetArgsgetEnvgetEnvironment getProgName lookupEnvsetEnvunsetEnvwithArgs withProgNameGHC.StableName eqStableNamehashStableNamemakeStableName StableName Data.Unique hashUnique newUniqueUnique Data.STRef modifySTRef modifySTRef' Data.RatioapproxRationalControl.Monad.IO.ClassMonadIOliftIOData.Bifunctor BifunctorfirstsecondbimapControl.Concurrent.QSemNnewQSemN signalQSemN waitQSemNQSemNControl.Concurrent.QSemnewQSem signalQSemwaitQSemQSemControl.Concurrent.ChandupChangetChanContentsnewChanreadChan writeChanwriteList2ChanChanControl.Concurrent forkFinallyforkOSforkOSWithUnmaskisCurrentThreadBoundrtsSupportsBoundThreadsrunInBoundThreadrunInUnboundThreadthreadWaitReadthreadWaitReadSTMthreadWaitWritethreadWaitWriteSTMSystem.TimeouttimeoutTimeout constrFields constrFixity constrIndex constrRep constrTypedataTypeConstrs dataTypeName dataTypeRep fromConstr fromConstrB fromConstrM indexConstr isAlgType isNorepTypemaxConstrIndex mkCharConstr mkCharTypemkConstr mkConstrTag mkDataType mkFloatType mkIntTypemkIntegralConstr mkNoRepType mkRealConstr readConstr repConstr showConstr tyconModule tyconUQnameConIndexConstr ConstrRep CharConstr AlgConstr IntConstr FloatConstrDataRepAlgRepCharRepNoRepIntRepFloatRepDataTypeFixityInfixPrefixsortWith Data.VoidabsurdvacuousVoid Data.Fixeddiv'divMod'mod' showFixedCentiDeciE0E1E12E2E3E6E9FixedMkFixed HasResolution resolutionMicroMilliNanoPicoUni Data.Complexcis conjugateimagPart magnitudemkPolarphasepolarrealPartComplex:+Data.Functor.ComposeCompose getComposeGHC.IO.Handle.TypesHandle ForeignPtrbytestring-0.11.3.1Data.ByteString.Internal ByteString'hashable-1.4.1.0-DD9dAnwBSDfIvorTHQpz48Data.Hashable.ClassHashable text-1.2.5.0Data.Text.InternalTextLastgetLastFirstgetFirstData.Functor.Contravariant Predicate getPredicateOpgetOp EquivalencegetEquivalence Contravariant>$ contramap Comparison getComparisonphantomdefaultEquivalencedefaultComparisoncomparisonEquivalence>$<>$$<$<GHC.OverloadedLabelsIsLabel fromLabelgetAlt showAsTextUnitRefUnit InParensUnitInSquareBracketsUnitAppSeqCommaSeqNestedTypeExpressionStructureNestedTypeExpressionAppSeqNestedTypeExpression Structure EnumStructure SumStructureProductStructureDoconlycommaSeparatedcommainParensinSquareBrackets skipSpace1nameucNamelcNamecommaSeqappSequnittypeRef enumHasField sumHasFieldproductHasFieldproductAccessorIsLabelsumAccessorIsLabelenumAccessorIsLabelcurriedSumConstructorIsLabeluncurriedSumConstructorIsLabelenumConstructorIsLabelwrapperConstructorIsLabelwrapperMapperIsLabelproductMapperIsLabelsumMapperIsLabel deriving_hasFieldaccessorIsLabelconstructorIsLabelvariantConstructorIsLabel mapperIsLabelbyNonAliasName byEnumNameenumboundedeqgenericdata_typeablehashablelifttypeDec mapFirstCharucFirstlcFirst eliminateDocstructureTypeDecsstructureGeneratedTypeDecsnestedTypeExpressionTypeDecsstructureTypeDefeliminateProductStructureUniteliminateSumStructureUnitnestedTypeExpressionTypeeliminateTypeStringCommaSeqeliminateTypeStringAppSeqeliminateTypeStringUniteliminateTypeRefdoc structure byFieldNamesumTypeExpressionnestedTypeExpression enumVariantsappTypeStringScalarstructureMapping