Copyright | (c) 2008 Benedikt Huber |
---|---|
License | BSD-style |
Maintainer | benedikt.huber@gmail.com |
Stability | experimental |
Portability | ghc |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Language.C.Data.Name
Description
Unique Names with fast equality (newtype Int
)
Synopsis
- newtype Name = Name {
- nameId :: Int
- newNameSupply :: [Name]
- namesStartingFrom :: Int -> [Name]
Documentation
Name is a unique identifier
Instances
Data Name Source # | |
Defined in Language.C.Data.Name Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Name -> c Name gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Name dataTypeOf :: Name -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Name) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Name) gmapT :: (forall b. Data b => b -> b) -> Name -> Name gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r gmapQ :: (forall d. Data d => d -> u) -> Name -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Name -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Name -> m Name gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name | |
Enum Name Source # | |
Generic Name Source # | |
Ix Name Source # | |
Read Name Source # | |
Defined in Language.C.Data.Name | |
Show Name Source # | |
NFData Name Source # | |
Defined in Language.C.Data.Name | |
Eq Name Source # | |
Ord Name Source # | |
type Rep Name Source # | |
Defined in Language.C.Data.Name type Rep Name = D1 ('MetaData "Name" "Language.C.Data.Name" "language-c-0.9.2-2qlksbsQow9Gzp8WTwI6fa" 'True) (C1 ('MetaCons "Name" 'PrefixI 'True) (S1 ('MetaSel ('Just "nameId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))) |
newNameSupply :: [Name] Source #
return an infinite stream of Name
s starting with nameId
0
namesStartingFrom :: Int -> [Name] Source #
get the infinite stream of unique names starting from the given integer