VSRC, chapter 3 (The architecture of Eiffel software), page 36 Root Class rule A class `C' may be used as root of a system if and only if it satisfies the following two conditions: 1 `C' is not generic. 2 `C' is not deferred. 3 Any creation procedure of `C' has either no formal argument, or a single formal argument of type `ARRAY [STRING]'.