Copyright | (c) The University of Glasgow 2001 |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Jeffrey Young <jeffrey.young@iohk.io> Luite Stegeman <luite.stegeman@iohk.io> Sylvain Henry <sylvain.henry@iohk.io> Josh Meredith <josh.meredith@iohk.io> |
Stability | experimental |
Safe Haskell | None |
Language | GHC2021 |
Domain and Purpose
GHC.JS.Ident defines identifiers for the JS backend. We keep this module separate to prevent coupling between GHC and the backend and between unrelated modules is the JS backend.
Consumers
The entire JavaScript Backend consumes this module including modules in GHC.JS.* and modules in GHC.StgToJS.*
Additional Notes
This module should be kept as small as possible. Anything added to it will be coupled to the JS backend EDSL and the JS Backend including the linker and rts. You have been warned.
Synopsis
- newtype Ident = TxtI {}
- name :: FastString -> Ident
Documentation
A newtype wrapper around FastString
for JS identifiers.
name :: FastString -> Ident Source #
To give a thing a name is to have power over it. This smart constructor
serves two purposes: first, it isolates the JS backend from the rest of GHC.
The backend should not explicitly use types provided by GHC but instead
should wrap them such as we do here. Second it creates a symbol in the JS
backend, but it does not yet give that symbols meaning. Giving the symbol
meaning only occurs once it is used with a combinator from GHC.JS.Make
.