jacinda-0.1.0.0: src/Intern/Name.hs
{-# LANGUAGE DeriveFunctor #-}
module Intern.Name ( Name (..)
, TyName
, eqName
) where
import qualified Data.Text as T
import Intern.Unique
import Prettyprinter (Pretty (pretty))
data Name a = Name { name :: T.Text
, unique :: !Unique
, loc :: a
} deriving (Functor)
-- for testing
eqName :: Name a -> Name a -> Bool
eqName (Name n _ _) (Name n' _ _) = n == n'
instance Eq (Name a) where
(==) (Name _ u _) (Name _ u' _) = u == u'
instance Pretty (Name a) where
pretty (Name t _ _) = pretty t
instance Ord (Name a) where
compare (Name _ u _) (Name _ u' _) = compare u u'
type TyName = Name