packages feed

tpdb-2.7.1: src/TPDB/Data/Identifier.hs

module TPDB.Data.Identifier where

import qualified Data.Text as T
import Data.Typeable
import Data.Hashable

data Identifier =
     Identifier { _identifier_hash :: !Int
                , name :: !T.Text
                , arity :: Int
                }
    deriving ( Eq, Ord, Typeable )

instance Hashable Identifier where
    hashWithSalt _ = _identifier_hash

instance Show Identifier where show = T.unpack . name

mk :: Int -> T.Text -> Identifier
mk a n = Identifier { _identifier_hash = hash (a,n)
                    , arity = a, name = n }