1 Namespace Definitions
2 =====================
3
4 Attributes can be redefined in modules and classes, but this eliminates much
5 of the potential for optimisation. However, names of classes and functions
6 could be restricted to only refer to the same kinds of objects within the same
7 namespace. If redefinition were to occur, or if multiple possibilities were
8 present, these restrictions could be moderated as follows:
9
10 * Classes assigned to the same name could provide the union of their
11 attributes. This would, however, cause a potential collision of attribute
12 definitions such as methods.
13
14 * Functions, if they share compatible signatures, could share parameter list
15 definitions.
16
17 It is easier, however, to regard multiply defined classes and functions as
18 non-constant and to either disallow optimisations or to actually prevent the
19 program describing them from compiling.
20
21 Note that the same static definition may be multiply defined, such as a class
22 with parameterised attributes or a function with parameterised defaults (or
23 even closures referencing external state). Such parameterisation does not
24 attempt to reconcile completely different static definitions, however, and
25 should be handled separately.