ghc-9.6.3: The GHC API

Safe Haskell | Safe-Inferred
Language | Haskell2010

GHC.Builtin.Utils

Contents

- Known-key names
  - Internal use
- Miscellaneous
- Random other things
- Class categories

Description

The `GHC.Builtin.Utils` interface to the compiler's prelude knowledge.

This module serves as the central gathering point for names which the compiler knows something about. This includes functions for,

- discerning whether a `Name` is known-key
- given a `Unique`, looking up its corresponding known-key `Name`

See Note [Known-key names] and Note [About wired-in things] for information about the two types of prelude things in GHC.

Synopsis

- isKnownKeyName :: Name -> Bool
- lookupKnownKeyName :: Unique -> Maybe Name
- lookupKnownNameInfo :: Name -> SDoc
- knownKeyNames :: [Name]
- wiredInIds :: [Id]
- ghcPrimIds :: [Id]
- ghcPrimExports :: [IfaceExport]
- ghcPrimDeclDocs :: Docs
- maybeCharLikeCon :: DataCon -> Bool
- maybeIntLikeCon :: DataCon -> Bool
- isNumericClass :: Class -> Bool
- isStandardClass :: Class -> Bool

# Known-key names

isKnownKeyName :: Name -> Bool Source #

Is a `Name` known-key?

lookupKnownKeyName :: Unique -> Maybe Name Source #

Given a `Unique` lookup its associated `Name` if it corresponds to a known-key thing.

lookupKnownNameInfo :: Name -> SDoc Source #

Given a `Unique` lookup any associated arbitrary SDoc's to be displayed by GHCi's ':info' command.

## Internal use

`knownKeyNames` is exported to seed the original name cache only; if you find yourself wanting to look at it you might consider using `lookupKnownKeyName` or `isKnownKeyName`.

knownKeyNames :: [Name] Source #

This list is used to ensure that when you say "Prelude.map" in your source code, or in an interface file, you get a Name with the correct known key (See Note [Known-key names] in GHC.Builtin.Names)

# Miscellaneous

wiredInIds :: [Id] Source #

ghcPrimIds :: [Id] Source #

ghcPrimExports :: [IfaceExport] Source #

ghcPrimDeclDocs :: Docs Source #

# Random other things

maybeCharLikeCon :: DataCon -> Bool Source #

maybeIntLikeCon :: DataCon -> Bool Source #

# Class categories

isNumericClass :: Class -> Bool Source #

isStandardClass :: Class -> Bool Source #