On Thu, Jul 23, 2009 at 5:05 PM, Aditya Mahajan wrote: > On Thu, 23 Jul 2009, luigi scarso wrote: > > On Thu, Jul 23, 2009 at 4:37 PM, Hans Hagen 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