namespace import -force blt::*
proc normal {x y} {return [expr $x+$y]}
proc indented {x y} {return [expr $x+$y]}
namespace eval buried {
proc inside {args} {return "inside: $args"}
namespace export pub_*
proc pub_one {args} {return "one: $args"}
proc pub_two {args} {return "two: $args"}
}
proc buried::within {args} {return "within: $args"}
namespace eval buried {
namespace eval under {
proc neath {args} {return "neath: $args"}
}
namespace eval ::buried {
proc relative {args} {return "relative: $args"}
proc ::top {args} {return "top: $args"}
proc ::buried::explicit {args} {return "explicit: $args"}
}
}
proc buried::myproc {name body args} {
::proc $name $body $args
}
namespace eval ::buried {
proc mycmd1 args {return "mycmd"}
myproc mycmd2 args {return "mycmd"}
}
::buried::myproc mycmd3 args {return "another"}
proc {buried::my proc} {name body args} {
::proc $name $body $args
}
namespace eval ::buried {
proc mycmd4 args {return "mycmd"}
{my proc} mycmd5 args {return "mycmd"}
}
{::buried::my proc} mycmd6 args {return "another"}