úÎ|­portable experimentalnominolo@gmail.comNone A symbol. (Insert a symbol into an existing table. 5Create a new local symbol. For best performance use   together with a symbol table / map.          NoneA . This is essentially a , but with different  performance characteristics:  O(n) creation time (using insert)  O(1) equality comparison.  O(1)* comparison (in practice). The result of  is % independent of evaluation order. (It is currently implemented as follows. 5 Each symbol contains a unique integer, which allows O(1)  comparison. B Each symbol contains an infinite chain of hashes, these are used E for comparison. In practice, it is very rare that more than the @ first of those hashes is ever evaluated. The first hash is E cached, so that most comparisons will not need any indirections.  The $ representation of the symbol. Use  to return D it. At any time, there will be only one symbol of a given name  in memory. Turn a  into a . ANote, however, that this function contains a space leak. It has E internal state (the symbol table) but is referentially transparent. @ Unfortunately, there is no way to delete items from the symbol  table. ,(This function is, of course, thread-safe.)  !"  !"#      !"#simple-atom-0.1.0.1 Data.Atom.UFData.Atom.SimpleSymTab lookupSymbol insertSymbolSymbol internIntointernLink SymbolInfoSymInfoshowSym mkSymbolInfo cmpSymbolsameSymreprtest1hash $fShowSymbol $fOrdSymbol $fEqSymbolbaseGHC.BaseStringghc-prim GHC.ClassescompareGHC.ShowshowSymTblMkSymbolmkSymbolprimes bigprimes