I realized the #:declarative? can only be applied in the downstream modules of the module holding global vars. So the #:declarative? will affect the whole module and I have to put it everywhere that references the global vas.
Maybe it'd be better if there's finer granularity control for each, like define-non-dclarative or else. BTW. In my case, I want to implement the global var mutation. For such a case, if users don't want to put #:declarative? to affect the whole downstream modules, maybe the best way is to implement getter and setter inside the global var module. Comments are welcome. Thanks! Best regards.