zodiac:unit-form : zodiac:parsed (imports exports clauses)
imports is a list of zodiac:lexical-bindings. exports is a list of pairs. The first projection of each pair contains a zodiac:top-level-varref/bind, while the second projection contains a (Zodiac) zodiac:symbol. The first projection corresponds to the internal name, and the second projection to the exported name. When no renaming is specified, the same name is used for both projections. clauses is a list of zodiac:parsed objects, corresponding to the expressions in the unit.
zodiac:compound-unit-form : zodiac:parsed (imports links exports)
imports is a list of zodiac:lexical-bindings. link is
a list of lists. Each list corresponds to one link clause. The
car of the list is a (Zodiac) zodiac:symbol giving the link tag.
The cadr is a zodiac:parsed object holding the expression
specifying the unit to link in that clause. The cddr is the
list of arguments to the unit. Each of the arguments is either a
zodiac:lexical-varref, corresponding to an imported variable, or a
pair of a zodiac:symbol (for the link clause) and a zodiac:symbol (for
the exported name), corresponding to importing from another unit.
Finally, zodiac:exports is a list of export clauses. The car
of each clause is a zodiac:symbol, naming the link clause; the
cadr and cddr are zodiac:symbols giving the internal
and exported names, respectively.
zodiac:invoke-unit-form : zodiac:parsed (unit variables)
zodiac:invoke-open-unit-form : zodiac:parsed (unit name-specifier variables)
unit is a zodiac:parsed object; variables is a list of
zodiac:parsed objects. name-specifier can have two forms:
#f, the false value, if no name prefix is given, or a (Zodiac)
zodiac:symbol object, giving the specified name prefix.