This is error prone, we need to distinguish between these two. So we plan to have a``system.defined`` that only does (1) and system.declared that only does (2). The compiler will warn about old usages of defined but this cannot be done reliably, so beware.