Alice repairs this by adding a component system to the language. They support lazy linking and loading from remote URLs, but add static and dynamic type checking.
Components are architecture independent and can be executed on any system.
An import can contain any language entity, like values, types, structures, signatures, etc. An Alice program is executed by starting a component. In general, a component relies on other components. These other components are loaded and evaluated by need by the Composer , who is part of the runtime system. A component that is never actually accessed at runtime will not get loaded.