]&None&!"&(*+-./0123468=?BEGHIJKMTU-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./01None&!"&(*+-./0123468=?BEGHIJKMTU234562323456None&!"&(*+-./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;778          ! "# $ % &' &( )* +, +- +. +/0102 &3 4 5 6 7 8 9: ;< ;= ;> ;? ;@ AB )C )D )E )F GH GI GJ KL KM KN +O +P0Q RS )T )U V WX Y &Z0[ \] )^ R_ )` ab cd ef 9g Gh Ai Kj kl mn opqrqsqtquqv wx wy wz w{|}~q ) )qq      qq  qqq  c c c c  K K   G G                                   m m m m m m m m m m k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k "            !  "  # $% $& '( )* )+ ), )- ). )/ )0 )1 )2 )3 )4 )5 )6 )7 )8 )9 ): ); )< )= )> )? @A @B @C @D @E @F @G @H @I @J WK WL WM WN WO WP WQ WR WS WT WU WV WW WX WY WZ W[ W\ W] W^ W_ W` Wa Wb Wc Wd We Wf Wg Wh Wi Wj Wk Wl Wm Wn Wo Wp Wq Wr Ws Wt Wu Wv Ww Wx Wy Wz W{ W| W} W~ W W W W W W W W       K K K K K K K K K K K K K K K K K K K K K ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;                                                                                               ! " # $% &' &( &) &) *+ *, *- *. */ *0 *1 *2 *3 45 46 47 48 49 4: 4; 4< 4= 4> 4? 4@ 4A 4A 4B 4B 4C 4C 4D 4D 4E 4E 4F 4F 4G 4G HI HJ HK HL HM HN HO HP HQ HR HS HT HU HV HW HX HY HZ H[ H\ H] H^ H_ H` Ha Hb Hc Hd He Hf Hg Hh Hi Hj Hk Hl Hm Hn Ho Ho Hp Hq Hr Hs Ht Hu Hv Hw Hx Hy Hz H{ H| H| H} H} ~                                                                                                                                                                          ! " # $ % & ' ( ) * + ,  -. -/ -0 -1 -2 -3 -3 -4 -5 -6 -7 -8 -9 -: ; < = >? >@ >A >B >C >D >E >E >F >G >G >H >I >I >J >K >K >L >M >M >N >O >O >P >Q >Q >R >S >S T U V W X Y Z[ Z\ Z] Z^ Z_ e` ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez e{ e| e} e~           \ \ \ \ \ \ \ \ R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R                                 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) + + + + + +             a a a a a a a a a a G G G G G G G G G G G G G G G G G G G G G    ! " # $ % & ' ( ) * + , - . / 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 T U V W X Y Z [ \]0^0_0`0a0b0c0d0e0f0ghijhikhilhimhinhiohiphiqhirstuvwxyhtml-entities-1.1.0.0HTMLEntities.ParserHTMLEntities.DecoderHTMLEntities.BuilderHTMLEntities.PreludeHTMLEntities.NameTable htmlEntityhtmlEncodedTextchartextbaseGHC.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.1.3Data.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