2.3 Completeness and Usability
In HAC, there are three levels of completeness for definitions.
- A definition is declared
if its template signature (which may be empty) has been defined.
Forward declarations of a type only specify the name
and template parameters, and no other information.
- A definition is signed if it is declared
and its public ports interface (which may be empty) has been defined.
- A definition is defined if it is signed
and its body has been defined.
NOTE: what about definition bindings?
Since type information only refers to template parameters,
a type may refer to any declared definition.