Copyright | (c) 2008 Benedikt Huber |
---|---|
License | BSD-style |
Maintainer | benedikt.huber@gmail.com |
Stability | experimental |
Portability | ghc |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Unique Names with fast equality (newtype Int
)
Synopsis
- newtype Name = Name {}
- newNameSupply :: [Name]
- namesStartingFrom :: Int -> [Name]
Documentation
Name is a unique identifier
Instances
Data Name Source # | |
Defined in Language.C.Data.Name 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 # | |
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 |
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