Marker trait for all built-in entities.
A built-in type with an implicit definition that the compiler must have special knowledge about.
A user-defined constant entity represented by a constant declaration.
An entity that represents some program object.
An environment is a stack of scopes with the innermost scope on the top.
An environment is a stack of scopes with the innermost scope on the top.
An entity that represents an error situation.
A built-in value of some type that is represented by a particular integer value.
A user-defined module represented by a module declaration.
Support for unique ids for named things.
A named entity.
A scope maps identifiers to entities.
A scope maps identifiers to entities.
An entity representing by a user-provided type declaration.
A user-defined type.
A variable entity including a reference to its types' definition.
A entity represented by names for whom we have seen more than one declaration so we are unsure what is being represented.
Static support for entity names.
An unknown entity, represented by names whose declarations are missing.
Built-in Boolean type.
The default environment.
Define i to be e in the current scope of env, raising an error if the environment is empty.
Define i to be e in the current scope of env, raising an error if the environment is empty.
Enter a new empty scope nested within the given environment.
Enter a new empty scope nested within the given environment.
Built-in false constant.
Built-in integer type.
Return true if the given type is Boolean or an unknown type.
Return true if the entity is erroneous or is a constant.
Say whether i is defined in any scope of env.
Say whether i is defined in any scope of env.
Say whether i is defined in an innermost scope of env (i.
Say whether i is defined in an innermost scope of env (i.e., in the current scope).
Say whether i is defined in an outer scope of env (i.
Say whether i is defined in an outer scope of env (i.e., not in the current scope).
Say whether i is defined in the given scope.
Say whether i is defined in the given scope.
Say whether i is defined in the current scope of env.
Say whether i is defined in the current scope of env.
Return true if the entity is an error, false otherwise.
Return true if the given type is integer or an unknown type.
Return true if the entity is erroneous or is a module.
Return true if the entity is erroneous or is a type.
Return true if the entity is erroneous or is a variable.
Leave the outermost scope of the given environment, raising an error if the environment is empty.
Leave the outermost scope of the given environment, raising an error if the environment is empty.
Look up i in env, returning the mapped Entity if there is one, otherwise return e.
Look up i in env, returning the mapped Entity if there is one, otherwise return e. If scope is true, just search the innermost scope, otherwise search outwards in all scopes, returning the first Entity found, if any.
Reset the environment module.
Reset the environment module.
Create a root environment, i.
Create a root environment, i.e., one that has a single scope containing the given bindings.
Built-in true constant.
A type that is unknown, eg because the typed thing is erroneously defined.