Reduced variants of SLUL ======================== There should be an \option or \disable attribute for modules. This is needed for disabling or limiting features: * Disabling floating point (nofp) * Allowing 16 bit compilation (allow16) * Disabling arena support (noarena) * Disabling restrictions for subarenas (norestrict) * Disabling division/multiplication with by a non-constant (nodiv/nomul) It could also be used to allow extensions: * Allowing 128 bit integers (int128) It makes sense to be able to enable/disable a functionality only in the interface, or to enable a functionality only in the implementation. For anything that is not a implementation-only \enable, there has to be a "since" version. \enable int128 implonly \enable int128 since 1.0 \disable fp since 1.0 \disable arena since 1.0 \disable restrict since 1.0 \disable default32 ifaceonly since 1.0 \disable int32 ifaceonly since 1.0 # <-- requires \disable int64 also \disable int64 ifaceonly since 1.0 \disable div since 1.0 \disable mul since 1.0 How to un-\disable a feature in later version? Make "implonly" default for \enable? And add "iface_also" What names should be used? \enable int128 iface_also \disable fp \enable int128 iface_also \supports no_fp ifaceonly \supports int_16 \supports no_int64 \supports no_div \supports no_mul since 1.0