hlt.language.design.types (API documentation of hlt.language packages)
Date: 2013-01-30

# Package hlt.language.design.types

- Interface Summary
  Interface | Description
  --- | ---
  Bindable | This is the interface of bindable objects.
  Collection | This is an interface for types that are collections of a certain base type.
  GoalProver |
  Valuable | This interface is that of any object that can be the value of the binding of a `Bindable` object.

- Class Summary
  Class | Description
  --- | ---
  ArrayIndexTypeGoal | An `ArrayIndexTypeGoal` encapsulates a pair consisting of an expression and an array type.
  ArrayType | This class denotes the type of arrays.
  BagType | This is the class denoting the type of bags.
  BaseTypeGoal | A `BaseTypeGoal` encapsulates a pair consisting of an expression and a type.
  BoxableTypeConstant |
  BuiltinEntry | This class extends `CodeEntry` for the specific case of built-in (as opposed to user-defined) code entries.
  CheckExitableGoal | A `CheckExitableGoal` unifies the return type of the latest scope typechecker's stack of exitable scopes with its own exit value type.
  ChoicePoint | A `ChoicePoint` extends a `TypingState` with a queue of `CodeEntry` objects.
  ClassInfo | This class holds information about a class type needed for compiling field access and update, and enables specifying an implementation for methods manipulating objects of this type.
  ClassType | This is the type of object structures.
  CodeEntry | Objects of this class associate a `Symbol` and a `Type` to code that may be executed for it.
  CodeEntry.CodeId |
  CollectionType | This is the mother class of all types denoting collections.
  CollectionTypeConstant | This is the class of constant types that are also collection types.
  ConstructedType | This this the mother of all constructed type classes.
  DefinedEntry | This class extends `CodeEntry` for the specific case of user-defined (as opposed to built-in) code entries.
  DefinedType | This is the class of defined opaque types.
  EmptyGoal | An `EmptyyGoal` is the trivial always `true` goal.
  FieldInfo | Objects of this class encapsulate the additional information needed by a a `DefinedEntry` when it is that of a class field.
  FunctionType |
  GlobalTypingGoal | A `GlobalTypingGoal` manages the typing of `Global`s.
  Goal | A `Goal` is anything that may be established and undone by a `TypeChecker`.
  ListType | This is the class denoting the type of lists.
  NamedTupleType | This is the type of tuples whose components are identified by field names.
  NamedType |
  NoVoidTypeGoal | A `NoVoidType` fails when its type component is void.
  PopExitableGoal | A `PopExitableGoal` simply pops the typechecker's stack of exitable scopes.
  ProtoType | All the methods redefined here are inherited from Type and are disabled in this class extension of `Type`.
  PruningGoal | The meaning of a `PruningGoal` is to unify the filter field of a specified `Global` with the specified filter.
  PushExitableGoal | A `PushExitableGoal` simply pushes a scope on the typechecker's stack of exitable scopes.
  ResiduatedGoal | An `ResiduatedGoal` is a wrapper for a goal goal that is effectively proven only when it contains no unbound type parameters.
  SetType | This is the class denoting the type of sets.
  ShadowUnifyGoal | A `ShadowUnifyGoal` extends a `UnifyGoal` in that it unifies the `shadow types` of the types themselves.
  StaticType | The mother class of static type objects.
  Symbol | A symbol object is essentially a (global) name and its type table.
  Tables | This class encapsulates the tables in which defined symbols and declared types are registered.
  TimeStamp | This is the class of time-stamped objects used in a `TypeChecker` (i.e., `Goal`s and `TypingState`s).
  TupleType | This is the type of tuples whose components are identified by position.
  Type |
  TypeChecker | A `TypeChecker` is a backtracking prover that establishes `Goal` objects.
  TypeConstant |
  TypeDefinition | This class encapsulates the information associated to a type term acting as an alias (or synonym) of another type.
  TypeParameter |
  TypeTerm |
  TypeTermScheme | Objects of this class are of the form `name(T1,...Tn)` where `name` is a type name and the `Ti`'s are distinct type parameters.
  TypingGoal | A `TypingGoal` encapsulates a pair of the form e:t, where e is and expression and t is a type.
  TypingState | A `TypingState` consists of the following pointers, each recording the size of the corresponding stack in the `TypeChecker` at state-saving time: a `goalStack` pointer; a `chptStack` pointer; a `bindTrail` pointer; a `typeTrail` pointer; a `applTrail` pointer; a `goalTrail` pointer;
  UnifyBaseTypeGoal | A `UnifyBaseTypeGoal` encapsulates a pair consisting of a type and a base type.
  UnifyGoal | A `UnifyGoal` encapsulates a pair of types that must be unified.

- Exception Summary
  Exception | Description
  --- | ---
  ClassDeclarationException |
  DuplicateCodeEntryException |
  FailedUnificationException |
  NoSuchTypeComponentException |
  ObjectInitializationException |
  StaticSemanticsErrorException |
  TypeClashException |
  TypeDefinitionException |
  TypingErrorException |