]&None&!"&(*+-./0123468=?BEGHIJKMTU-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./012None&!"&(*+-./0123468=?BEGHIJKMTU345673434567None&!"&(*+-./0123468=?BEGHIJKMTUA parser of a single entity.Parses numeric encoding:PmapM_ Data.Text.IO.putStrLn $ Data.Attoparsec.Text.parseOnly htmlEntity "&#169;"as well as named entities:PmapM_ Data.Text.IO.putStrLn $ Data.Attoparsec.Text.parseOnly htmlEntity "&copy;"None&!"&(*+-./0123468=?BEGHIJKMTUA decoder of a single entity.1mapM_ Data.Text.IO.putStrLn $ htmlEntity "&#169;""A decoder of a text with entities.]Produces a text builder, which you can then convert into a text or a lazy text, using the  'http://hackage.haskell.org/package/text"text" or  2http://hackage.haskell.org/package/conversion-text"conversion-text" library.jmapM_ (Data.Text.Lazy.IO.putStrLn . Data.Text.Lazy.Builder.toLazyText) $ htmlEncodedText "&euro;5 &cent;2" 5 2None&!"&(*+-./0123468=?BEGHIJKMTU0HTML-encodes the given char into a text builder.0HTML-encodes the given text into a text builder.UData.Text.Lazy.IO.putStrLn $ Data.Text.Lazy.Builder.toLazyText $ text "<a href=\"\">"&lt;a href=&quot;&quot;&gt;889           ! " #$ % & '( ') *+ ,- ,. ,/ ,01213 '4 5 6 7 8 9 :; <= <> <? <@ <A BC *D *E *F *G HI HJ HK LM LN LO ,P ,Q1R ST *U *V W XY Z '[1\ ]^ *_ S` *a bc de fg :h Hi Bj Lk lm no pqrsrtrurvrw xy xz x{ x|}~r * *rr      rr  rrr  d d d d  L L   H H                                   n n n n n n n n n n l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l #           !" !# !$ %& %' () *+ *, *- *. */ *0 *1 *2 *3 *4 *5 *6 *7 *8 *9 *: *; *< *= *> *? *@ AB AC AD AE AF AG AH AI AJ AK XL XM XN XO XP XQ XR XS XT XU XV XW XX XY XZ X[ X\ X] X^ X_ X` Xa Xb Xc Xd Xe Xf Xg Xh Xi Xj Xk Xl Xm Xn Xo Xp Xq Xr Xs Xt Xu Xv Xw Xx Xy Xz X{ X| X} X~ X X X X X X X X X       L L L L L L L L L L L L L L L L L L L L L < < < < < < < < < < < < < < < < < < < < < < < < <                                                                                               !  "  #  $ %& '( ') '* '* +, +- +. +/ +0 +1 +2 +3 +4 56 57 58 59 5: 5; 5< 5= 5> 5? 5@ 5A 5B 5B 5C 5C 5D 5D 5E 5E 5F 5F 5G 5G 5H 5H IJ IK IL IM IN IO IP IQ IR IS IT IU IV IW IX IY IZ I[ I\ I] I^ I_ I` Ia Ib Ic Id Ie If Ig Ih Ii Ij Ik Il Im In Io Ip Ip Iq Ir Is It Iu Iv Iw Ix Iy Iz I{ I| I} I} I~ I~                                                                                                                                                                          ! " # $ % & ' ( ) * + , -  ./ .0 .1 .2 .3 .4 .4 .5 .6 .7 .8 .9 .: .; < = > ?@ ?A ?B ?C ?D ?E ?F ?F ?G ?H ?H ?I ?J ?J ?K ?L ?L ?M ?N ?N ?O ?P ?P ?Q ?R ?R ?S ?T ?T U V W X Y Z [\ [] [^ [_ [` fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz f{ f| f} f~ f           ] ] ] ] ] ] ] ] S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S                                 * * * * * * * * * * * * * * * * * * * * * * , , , , , ,             b b b b b b b b b b H H H H H H H H H H H H H H H H H H H H H   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H 'I 'J 'K 'L 'M N O P Q R S .0 T U V W X Y Z [ \ ]^1_1`1a1b1c1d1e1f1g1hijkijlijmijnijoijpijqijrijstuvwxyzhtml-entities-1.0.1.0HTMLEntities.ParserHTMLEntities.DecoderHTMLEntities.BuilderHTMLEntities.PreludeHTMLEntities.NameTable htmlEntityDecoderhtmlEncodedTextchartextbaseGHC.Base++GHC.Errerrorghc-primGHC.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.Arrowarrfirstapp|||loop Data.String fromString fromIntegral realToFrac toInteger toRational Control.MonadguardliftMjoinControl.Applicative<*>pure AlternativeBoundedEnumEq GHC.FloatFloating FractionalIntegralMonad Data.DataDataFunctorNumOrdGHC.ReadReadReal RealFloatRealFracGHC.ShowShowGHC.ArrIxData.Typeable.InternalTypeableMonadFix MonadPlusIsString Applicative Data.FoldableFoldableData.Traversable Traversable GHC.GenericsGeneric GHC.TypesBoolCharDoubleFloatIntGHC.IntInt8Int16Int32Int64 integer-gmpGHC.Integer.TypeIntegerOrderingRatioRational RealWorldIOWordGHC.WordWord8Word16Word32Word64 Data.EitherEitherStringFalseTrueLeftRightLTEQGTGHC.IO.Handle.TypesHandlerangeindexinRange rangeSizeGHC.STST<* text-1.2.0.4Data.Text.InternalText*> GHC.UnicodeisSpaceisAlphaisDigit Text.Readread Data.MaybeMaybeNothingmplusmzerountangle ioException heapOverflow stackOverflowblockedIndefinitelyOnSTMblockedIndefinitelyOnMVar ioe_filename ioe_errnoioe_description ioe_locationioe_type ioe_handleIOError AlreadyExists NoSuchThing ResourceBusyResourceExhaustedEOFIllegalOperationPermissionDenied UserErrorUnsatisfiedConstraints SystemError ProtocolError OtherErrorInvalidArgumentInappropriateType HardwareFaultUnsupportedOperation TimeExpiredResourceVanished InterruptedunsupportedOperationSystem.TimeouttimeoutSystem.Mem.StableName eqStableNamehashStableNamemakeStableName StableName System.Mem performGCperformMajorGCperformMinorGC System.Exit exitSuccess exitFailureexitWithSystem.EnvironmentgetEnvironment withProgNamewithArgsunsetEnvsetEnv lookupEnvgetEnv getProgNamegetArgs!System.Environment.ExecutablePathgetExecutablePathfoldMapDefault fmapDefault mapAccumR mapAccumLforMforsequencemapM sequenceAtraversefindnotElemelem minimumByminimum maximumBymaximumproductsumallanyorand concatMapconcattoListmsumasum sequence_ sequenceA_forM_mapM_for_ traverse_foldlMfoldrMfoldl1foldr1foldl'foldlfoldr'foldrfoldMapfoldsortWith Debug.Trace traceMarkerIO traceMarker traceEventIO traceEvent traceStack traceShowtraceIdtrace putTraceMsgtraceIO Data.Unique hashUnique newUniqueUnique Data.STRef modifySTRef' modifySTRef Data.RatioapproxRational Data.Fixed showFixedmod'divMod'div'MkFixedFixed resolution HasResolutionE0UniE1DeciE2CentiE3MilliE6MicroE9NanoE12Pico Data.Complexphase magnitudepolarcismkPolar conjugateimagPartrealPart:+Complex 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 dataTypeOftoConstrgunfoldgfoldlDataTypeConstrAlgRepIntRepFloatRepCharRepNoRepDataRep AlgConstr IntConstr FloatConstr CharConstr ConstrRepConIndexPrefixInfixFixity Data.Version parseVersion showVersion versionTags versionBranchVersionoptionalliftA3liftA2liftA<**>manysome<|>emptygetConstConst unwrapMonad WrapMonad WrappedMonad unwrapArrow WrapArrow WrappedArrow getZipListZipListleftApp^<<<<^>>^^>>returnA&&&***secondArrow runKleisliKleisli zeroArrow ArrowZero<+> ArrowPlus+++rightleft ArrowChoice ArrowApply ArrowMonad ArrowLoop Data.FunctiononfixControl.ConcurrentthreadWaitWriteSTMthreadWaitReadSTMthreadWaitWritethreadWaitReadrunInUnboundThreadrunInBoundThreadisCurrentThreadBoundforkOS forkFinallyrtsSupportsBoundThreadsControl.Concurrent.QSemN signalQSemN waitQSemNnewQSemNQSemNControl.Concurrent.QSem signalQSemwaitQSemnewQSemQSemControl.Concurrent.ChanwriteList2ChangetChanContents isEmptyChan unGetChandupChanreadChan writeChannewChanChan Data.Functor<$>Control.Category>>><<<.idCategoryPrelude$!readIOreadLn 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 numSparksgetNumProcessorssetNumCapabilitiesgetNumCapabilitiesnumCapabilitiesforkOnWithUnmaskforkOnforkIOWithUnmaskforkIOThreadId BlockedOnMVarBlockedOnBlackHoleBlockedOnException BlockedOnSTMBlockedOnForeignCallBlockedOnOther BlockReason ThreadRunningThreadFinished ThreadBlocked ThreadDied ThreadStatusSTMTVarioErrorasyncExceptionFromExceptionasyncExceptionToExceptionBlockedIndefinitelyOnMVarBlockedIndefinitelyOnSTMDeadlockAssertionFailedSomeAsyncException StackOverflow HeapOverflow ThreadKilled UserInterruptAsyncExceptionIndexOutOfBoundsUndefinedElementArrayException ExitSuccess ExitFailureExitCode IOErrorType Data.Listunwordswordsunlineslinesfoldl1'unfoldrsortBysort permutations subsequencestailsinitsgroupBygroupdeleteFirstsByunzip7unzip6unzip5unzip4zipWith7zipWith6zipWith5zipWith4zip7zip6zip5zip4genericReplicate genericIndexgenericSplitAt genericDrop genericTake genericLengthinsertByinsert partition transpose intercalate intersperse intersectBy intersectunionByunion\\deleteBydeletenubBynub isInfixOf isSuffixOf isPrefixOf findIndices findIndex elemIndices elemIndex stripPrefix dropWhileEnd Data.Char isSeparatorisSymbol isPunctuationisNumberisMarkisLettergeneralCategory digitToIntUppercaseLetterLowercaseLetterTitlecaseLetterModifierLetter OtherLetterNonSpacingMarkSpacingCombiningMark EnclosingMark DecimalNumber LetterNumber OtherNumberConnectorPunctuationDashPunctuationOpenPunctuationClosePunctuation InitialQuote FinalQuoteOtherPunctuation MathSymbolCurrencySymbolModifierSymbol OtherSymbolSpace LineSeparatorParagraphSeparatorControlFormat Surrogate PrivateUse NotAssignedGeneralCategorytoTitletoUppertoLower isAsciiUpper isAsciiLowerForeign.StorableStorable Data.Dynamic dynTypeRepdynAppdynApply fromDynamicfromDyntoDynDynamic Data.IORefatomicWriteIORefatomicModifyIORef'atomicModifyIORef modifyIORef' modifyIORef mkWeakIORefGHC.MVar isEmptyMVar tryReadMVar tryPutMVar tryTakeMVarputMVarreadMVartakeMVarnewMVar newEmptyMVarMVar GHC.IORef writeIORef readIORefnewIORefIORefGHC.IOevaluateuninterruptibleMaskuninterruptibleMask_maskmask_getMaskingStatethrowIOunsafeInterleaveIOunsafeDupablePerformIOunsafePerformIOstToIOFilePathUnmaskedMaskedInterruptibleMaskedUninterruptible MaskingState userError IOException GHC.Exceptionthrow SomeException fromException toException Exception ErrorCallOverflow UnderflowLossOfPrecision DivideByZeroDenormalRatioZeroDenominatorArithException readMaybe readEitherreads Data.Monoid<>mconcatmappendmemptyMonoidgetDualDualappEndoEndogetAllAllgetAnyAnygetSumSum getProductProductgetFirstFirstgetLastLastisRightisLeftpartitionEithersrightsleftseither Data.Typeablegcast2gcast1gcasteqTcast showsTypeReptypeOf7typeOf6typeOf5typeOf4typeOf3typeOf2typeOf1typeOftypeRep tyConString typeRepArgs typeRepTyConmkTyCon3mkAppTy funResultTy splitTyConAppmkFunTy mkTyConAppTypeRep tyConName tyConModule tyConPackageTyCon Typeable1 Typeable2 Typeable3 Typeable4 Typeable5 Typeable6 Typeable7 byteSwap64 byteSwap32 byteSwap16Data.Ord comparingDownData.Type.EqualityRefl:~: Data.ProxyProxy readLitChar lexLitCharlex readParen readListPrecreadPrecreadList readsPrecacoshatanhasinhcoshtanhsinhacosatanasincostansinlogBase**logsqrtexppiatan2isIEEEisNegativeZeroisDenormalized isInfiniteisNaN scaleFloat significandexponent encodeFloat decodeFloat floatRange floatDigits floatRadix GHC.STRef writeSTRef readSTRefnewSTRefSTRef Data.BitspopCountDefaulttestBitDefault bitDefaultpopCountrotateRrotateL unsafeShiftRshiftR unsafeShiftLshiftLisSignedbitSize bitSizeMaybetestBit complementBitclearBitsetBitbitzeroBitsrotateshift complementxor.|..&.Bits finiteBitSize FiniteBitslcmgcd^^^oddeven denominator numerator%divModquotRemmoddivremquotrecip/floorceilingroundtruncateproperFractionmaxBoundminBoundfromEnumtoEnumpredsuccGHC.CharchrText.ParserCombinators.ReadPrec readS_to_Prec readPrec_to_S readP_to_Prec readPrec_to_PReadPrecText.ParserCombinators.ReadP readS_to_P readP_to_SReadSReadPrunSTfixST intToDigit showLitChar showParen showStringshowCharshowsShowSshowListshow showsPrecmfilterapliftM5liftM4liftM3liftM2unlesswhen replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMvoidforever<=<>=>filterM=<<unzip3unzipzipWith3zipWithzip3!!lookupreversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiteratescanr1scanrscanl1scanllengthnullinitlasttailheadmapMaybe catMaybes listToMaybe maybeToList fromMaybefromJust isNothingisJustmaybeJustswapuncurrycurrysubtractsignumabs*+asTypeOfuntilflipconstord<$isAsciiisLatin1 isControlisPrintisUpperisLower isOctDigit isHexDigit isAlphaNum Unsafe.Coerce unsafeCoerce/=compare<=&&||not<>maxminbase-prelude-0.1.19 BasePreludesortOnunconsisSubsequenceOf&$> traceShowMtraceM traceShowIdboollookupTextByNamelookupNameByTexttextByNameTablenameByTextTablelist entitiesTable