| Copyright | (c) 2013-2015 Galois, Inc. |
|---|---|
| License | BSD3 |
| Maintainer | cryptol@galois.com |
| Stability | provisional |
| Portability | portable |
| Safe Haskell | Safe-Inferred |
| Language | Haskell98 |
Cryptol.ModuleSystem.NamingEnv
Description
- data NameOrigin
- data EName
- data TName
- = TFromParam QName
- | TFromSyn (Located QName)
- | TFromNewtype (Located QName)
- | TFromMod QName
- class HasQName a where
- qname :: a -> QName
- origin :: a -> NameOrigin
- data NamingEnv = NamingEnv {}
- singletonT :: QName -> TName -> NamingEnv
- singletonE :: QName -> EName -> NamingEnv
- shadowing :: NamingEnv -> NamingEnv -> NamingEnv
- travNamingEnv :: Applicative f => (QName -> f QName) -> NamingEnv -> f NamingEnv
- class BindsNames a where
Documentation
data NameOrigin Source
Instances
Constructors
| TFromParam QName | |
| TFromSyn (Located QName) | |
| TFromNewtype (Located QName) | |
| TFromMod QName |
Constructors
| NamingEnv | |
singletonT :: QName -> TName -> NamingEnv Source
Singleton type renaming environment.
singletonE :: QName -> EName -> NamingEnv Source
Singleton expression renaming environment.
shadowing :: NamingEnv -> NamingEnv -> NamingEnv Source
Like mappend, but when merging, prefer values on the lhs.
travNamingEnv :: Applicative f => (QName -> f QName) -> NamingEnv -> f NamingEnv Source
class BindsNames a where Source
Things that define exported names.
Instances
| BindsNames TParam | Generate the naming environment for a type parameter. |
| BindsNames Schema | Generate a type renaming environment from the parameters that are bound by this schema. |
| BindsNames Pattern | Generate an expression renaming environment from a pattern. This ignores type parameters that can be bound by the pattern. |
| BindsNames Match | Translate names bound by the patterns of a match into a renaming environment. |
| BindsNames Bind | |
| BindsNames Decl | The naming environment for a single declaration, unqualified. This is meanat to be used for things like where clauses. |
| BindsNames Module | The naming environment for a single module. This is the mapping from unqualified internal names to fully qualified names. |
| BindsNames IfaceDecls | Translate a set of declarations from an interface into a naming environment. |
| BindsNames Iface | Produce a naming environment from an interface file, that contains a mapping only from unqualified names to qualified ones. |
| BindsNames NamingEnv | |
| BindsNames a => BindsNames [a] | |
| BindsNames a => BindsNames (Maybe a) |