-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | A 'Symbol' type for fast symbol comparison.
--   
--   Provides a <a>Symbol</a> data type allowing fast symbol comparisons
--   and functions for interning symbols and recovering their <a>String</a>
--   representation.
@package symbol
@version 0.2.4


module Data.Symbol.Unsafe
data Symbol

-- | Unique identifier and the string itself
Symbol :: {-# UNPACK #-} !Int -> !String -> Symbol

-- | Intern a string to produce a <a>Symbol</a>.
intern :: String -> Symbol

-- | Return the <a>String</a> associated with a <a>Symbol</a>.
unintern :: Symbol -> String
instance Data.Data.Data Data.Symbol.Unsafe.Symbol
instance GHC.Classes.Eq Data.Symbol.Unsafe.Symbol
instance GHC.Classes.Ord Data.Symbol.Unsafe.Symbol
instance GHC.Show.Show Data.Symbol.Unsafe.Symbol
instance GHC.Read.Read Data.Symbol.Unsafe.Symbol
instance Data.String.IsString Data.Symbol.Unsafe.Symbol


module Data.Symbol
data Symbol

-- | Intern a string to produce a <a>Symbol</a>.
intern :: String -> Symbol

-- | Return the <a>String</a> associated with a <a>Symbol</a>.
unintern :: Symbol -> String
