| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
GHC.SourceGen.Name
Contents
Description
This module defines custom types for defining names of various syntax terms.
These types are all instances of IsString. For ease of use,
we recommend enabling the OverloadedStrings extension.
Synopsis
- data RdrNameStr
- data RawNameSpace
- = Constructor
- | Value
- rdrNameStrToString :: RdrNameStr -> String
- qual :: ModuleNameStr -> OccNameStr -> RdrNameStr
- unqual :: OccNameStr -> RdrNameStr
- data OccNameStr
- occNameStrToString :: OccNameStr -> String
- occNameStrNamespace :: OccNameStr -> RawNameSpace
- occNameToStr :: OccName -> OccNameStr
- nameToStr :: Name -> OccNameStr
- newtype ModuleNameStr = ModuleNameStr {}
- moduleNameStrToString :: ModuleNameStr -> String
RdrNameStr
data RdrNameStr Source #
A string identifier which may be qualified to a particular module.
RdrNameStr wraps an OccNameStr and thus keeps track of whether it is a
"constructor" or "variable" (e.g.: "Foo.Bar" vs "Foo.bar",
respectively).
RdrNameStr is simililar in purpose to GHC's RdrName. However, unlike
RdrName, RdrNameStr does not differentiate between the namespace of types
and of values.
Functions in this package that take a RdrNameStr as input
will internally convert it to the proper namespace. (This approach
makes it easier to implement an IsString instance without the context
where a name would be used.)
For example:
fromString "A.B.c" == QualStr (fromString "A.B") (fromString "c") fromString "c" == UnqualStr (fromString "c")
Constructors
| UnqualStr OccNameStr | |
| QualStr ModuleNameStr OccNameStr |
Instances
| Eq RdrNameStr Source # | |
Defined in GHC.SourceGen.Name.Internal | |
| Ord RdrNameStr Source # | |
Defined in GHC.SourceGen.Name.Internal Methods compare :: RdrNameStr -> RdrNameStr -> Ordering # (<) :: RdrNameStr -> RdrNameStr -> Bool # (<=) :: RdrNameStr -> RdrNameStr -> Bool # (>) :: RdrNameStr -> RdrNameStr -> Bool # (>=) :: RdrNameStr -> RdrNameStr -> Bool # max :: RdrNameStr -> RdrNameStr -> RdrNameStr # min :: RdrNameStr -> RdrNameStr -> RdrNameStr # | |
| Show RdrNameStr Source # | |
Defined in GHC.SourceGen.Name.Internal Methods showsPrec :: Int -> RdrNameStr -> ShowS # show :: RdrNameStr -> String # showList :: [RdrNameStr] -> ShowS # | |
| IsString RdrNameStr Source # | |
Defined in GHC.SourceGen.Name.Internal Methods fromString :: String -> RdrNameStr # | |
data RawNameSpace Source #
Constructors
| Constructor | |
| Value |
Instances
| Eq RawNameSpace Source # | |
Defined in GHC.SourceGen.Name.Internal | |
| Ord RawNameSpace Source # | |
Defined in GHC.SourceGen.Name.Internal Methods compare :: RawNameSpace -> RawNameSpace -> Ordering # (<) :: RawNameSpace -> RawNameSpace -> Bool # (<=) :: RawNameSpace -> RawNameSpace -> Bool # (>) :: RawNameSpace -> RawNameSpace -> Bool # (>=) :: RawNameSpace -> RawNameSpace -> Bool # max :: RawNameSpace -> RawNameSpace -> RawNameSpace # min :: RawNameSpace -> RawNameSpace -> RawNameSpace # | |
| Show RawNameSpace Source # | |
Defined in GHC.SourceGen.Name.Internal Methods showsPrec :: Int -> RawNameSpace -> ShowS # show :: RawNameSpace -> String # showList :: [RawNameSpace] -> ShowS # | |
qual :: ModuleNameStr -> OccNameStr -> RdrNameStr Source #
unqual :: OccNameStr -> RdrNameStr Source #
OccNameStr
data OccNameStr Source #
A string identifier referring to a name.
OccNameStr keeps track of whether it is a "constructor" or "variable"
(e.g.: "Foo" vs "foo", respectively).
OccNameStr is simililar in purpose to GHC's OccName. However, unlike
OccName, OccNameStr does not differentiate between the namespace
of types and of values.
Functions in this package that take an OccNameStr as input
will internally convert it to the proper namespace. (This approach
makes it easier to implement an IsString instance without the context
where a name would be used.)
Instances
| Eq OccNameStr Source # | |
Defined in GHC.SourceGen.Name.Internal | |
| Ord OccNameStr Source # | |
Defined in GHC.SourceGen.Name.Internal Methods compare :: OccNameStr -> OccNameStr -> Ordering # (<) :: OccNameStr -> OccNameStr -> Bool # (<=) :: OccNameStr -> OccNameStr -> Bool # (>) :: OccNameStr -> OccNameStr -> Bool # (>=) :: OccNameStr -> OccNameStr -> Bool # max :: OccNameStr -> OccNameStr -> OccNameStr # min :: OccNameStr -> OccNameStr -> OccNameStr # | |
| Show OccNameStr Source # | |
Defined in GHC.SourceGen.Name.Internal Methods showsPrec :: Int -> OccNameStr -> ShowS # show :: OccNameStr -> String # showList :: [OccNameStr] -> ShowS # | |
| IsString OccNameStr Source # | |
Defined in GHC.SourceGen.Name.Internal Methods fromString :: String -> OccNameStr # | |
occNameToStr :: OccName -> OccNameStr Source #
Converts a GHC OccName to an OccNameStr. Ignores whether the input
came from the namespace of types or of values.
nameToStr :: Name -> OccNameStr Source #
Converts from a GHC Name to an OccNameStr. Ignores whether
the input came from the namespace of types or of values, as well
as any other information about where the name came from.
newtype ModuleNameStr Source #
A newtype wrapper around ModuleName which is an instance of IsString.
Constructors
| ModuleNameStr | |
Fields | |
Instances
| Eq ModuleNameStr Source # | |
Defined in GHC.SourceGen.Name.Internal Methods (==) :: ModuleNameStr -> ModuleNameStr -> Bool # (/=) :: ModuleNameStr -> ModuleNameStr -> Bool # | |
| Ord ModuleNameStr Source # | |
Defined in GHC.SourceGen.Name.Internal Methods compare :: ModuleNameStr -> ModuleNameStr -> Ordering # (<) :: ModuleNameStr -> ModuleNameStr -> Bool # (<=) :: ModuleNameStr -> ModuleNameStr -> Bool # (>) :: ModuleNameStr -> ModuleNameStr -> Bool # (>=) :: ModuleNameStr -> ModuleNameStr -> Bool # max :: ModuleNameStr -> ModuleNameStr -> ModuleNameStr # min :: ModuleNameStr -> ModuleNameStr -> ModuleNameStr # | |
| Show ModuleNameStr Source # | |
Defined in GHC.SourceGen.Name.Internal Methods showsPrec :: Int -> ModuleNameStr -> ShowS # show :: ModuleNameStr -> String # showList :: [ModuleNameStr] -> ShowS # | |
| IsString ModuleNameStr Source # | |
Defined in GHC.SourceGen.Name.Internal Methods fromString :: String -> ModuleNameStr # | |