On Thu, Jul 23, 2009 at 5:05 PM, Aditya Mahajan <adityam@umich.edu> wrote:
On Thu, 23 Jul 2009, luigi scarso wrote:

On Thu, Jul 23, 2009 at 4:37 PM, Hans Hagen <pragma@wxs.nl> wrote:

Xan wrote:

 Really, I did not know that. It's a messy thing that we could not define
what we like ;-)


it's the nature of a tex macro package; ok, i can add some strict testing
for in in mkiv but even then it might just be that someone who knows th
einternals (like wolfgang or wolfgang or wolfgang) wants to overload
something built in by something better

why not discipline ?

I mean something like
0) context macro are ok
1) \usemodule[foo] are ok (no collision with macros in 0)
2) define your macros inside
\startPrivate[namespace]
...
\stopPrivate
3) explicit  redefinition of macros in 0,1

by 3) should be no collision between 0,1,2
 

I think an easier thing to do will be to follow latex's style of \newcommand and \renewcommand. That is, all \definecommands should check if the macro is previously defined or not. If it is defined, issue a warning or an error. And maybe have some hook to disable the warning/error for those who know what they are doing.
yes, it's equivalent




--
luigi