I’m not even 100% what to call it, hence the poor phrasing. In Ruby it’s often called “monkeypatching” but emacs lisp also has it: any code in the program can replace existing procedures/variables anywhere else in the program.
This may seem like a bad thing, and sometimes it is, but it’s super useful also: for example in Emacs I can patch a core module with an improved version by adding a definition of a single core procedure to my config file without having to overwrite the actual core file itself.
So I’m wondering if people know of other languages/environments with similar features? Probably more LISPs, but I think not Schemes quite because of the module systems?