Îõ³h&d      Safe-Inferred"'=Êï† Safe-Inferred"'=ÁÃï¿ symbolize=Implemented by any String-like types. The symbol table uses Ý for its internal storage, so any type which can be converted to it can be turned to/from a .áInstance should handle potential invalid UTF-8 by using the Unicode replacement character, c.f. . symbolizeÎtoShortText: O(n). Turns invalid UTF-8 into the Unicode replacement character.fromShortText: O(n). symbolizeÎtoShortText: O(n). Turns invalid UTF-8 into the Unicode replacement character.fromShortText: O(0) no-op symbolize0toShortText: O(n). Evaluates the entire builder.fromShortText: O(1) symbolizeO(1) conversion symbolizeO(n) conversion symbolizeO(1) conversion symbolizeO(0) conversion (a no-op) Safe-Inferred"'=ïL  symbolizeüThe global Symbol Table, containing a bidirectional mapping between each symbol's textual representation and its Word index.ÂYou cannot manipulate the table itself directly, but you can use # to get a handle to it and use its  instance for introspection. < can similarly be used to get the current size of the table. symbolize5A string-like type with O(1) equality and comparison."A Symbol represents a string (any Ë, so String, Text, ByteString etc.) However, it only stores an (unpacked) ž, used as index into a global table in which the actual string value is stored. Thus equality checks are constant-time, and its memory footprint is very low.¢This is very useful if you're frequently comparing strings and the same strings might come up many times. It also makes Symbol a great candidate for a key in a  or . (Hashing them is a no-op!)®The symbol table is implemented using weak pointers, which means that unused symbols will be garbage collected. As such, you do not need to be concerned about memory leaks.ÏSymbols are considered 'the same' regardless of whether they originate from a $, (lazy or strict, normal or short)  $, (lazy or strict, normal or short)   etc.ŠSymbolize supports up to 2^64 symbols existing at the same type. Your system will probably run out of memory before you reach that point. symbolize¦Unintern a symbol, returning its textual value. Takes O(log16 n) time to look up the matching textual value, where n is the number of symbols currently in the table.ÆAfterwards, the textual value is converted to the desired type s. See ' for the type-specific time complexity.ãRuns concurrently with any other operation on the symbol table, without any atomic memory barriers. symbolize-Looks up a symbol in the global symbol table.Returns  $ if no such symbol currently exists.ÏTakes O(log16 n) time, where n is the number of symbols currently in the table.ãRuns concurrently with any other operation on the symbol table, without any atomic memory barriers.êBecause the result can vary depending on the current state of the symbol table, this function is not pure. symbolizeIntern a string-like value.First converts s to a  (if it isn't already one). See Ì for the type-specific time complexity of this. Then, takes O(log16 n) time to look up the matching symbol and insert it if it did not exist yet (where n is the number of symbols currently in the table).2Any concurrent calls to (the critical section in)  are synchronized. symbolizeÚReturns a handle to the global symbol table. (Only) useful for introspection or debugging.  symbolizeÙReturns the current size of the global symbol table. Useful for introspection or metrics.  symbolize Hashing a  is very fast:!0 is a no-op and results in zero collissions, as :'s index is unique and can be interpreted as a hash as-is."= takes O(1) time; just as long as hashWithSalt-ing any other .  symbolizeSymbols are ordered by their  representation.>Comparison takes O(n) time, as they are compared byte-by-byte.  symbolizeSymbol contains only a strict #, so it is already fully evaluated.  symbolizeTakes only O(1) time. symbolize4Data.Text.Display.display (Symbolize.intern "Pizza")"Pizza" symbolize To be a good citizen w.r.t both  and # , reading is supported two ways:+read @Symbol "Symbolize.intern \"Haskell\""Symbolize.intern "Haskell"read @Symbol "\"Curry\""Symbolize.intern "Curry"   $    !"#$%&'()*+,-./0(12(34567568(9:;(symbolize-0.1.0.2-DTF5AlLYJznEAgnBu01eqX SymbolizeSymbolize.AccursedSymbolize.TextualSymbolData.Text.Encoding.Error lenientDecodeDataHashSetText ByteStringTextual toShortText fromShortTextGlobalSymbolTableuninternlookupinternglobalSymbolTableglobalSymbolTableSize$fHashableSymbol $fOrdSymbol$fNFDataSymbol $fEqSymbol$fDisplaySymbol$fIsStringSymbol $fReadSymbol $fShowSymbol$fShowGlobalSymbolTableaccursedUnutterablePerformIO'text-short-0.1.5-9AQqNdztrmpI4qo9bk1d1HData.Text.Short.Internal ShortText$fTextualByteString$fTextualShortByteString$fTextualBuilder $fTextualText $fTextual[]$fTextualText0$fTextualShortTextbaseGHC.ShowShowghc-prim GHC.TypesWord4unordered-containers-0.2.19.1-EKKbotGPVujEYvQNsN9wHhData.HashMap.InternalHashMapGHC.BaseString GHC.MaybeNothing'hashable-1.4.3.0-9c3LiW3AA7S7ApORlow4bfData.Hashable.Classhash hashWithSalt Data.StringIsString