How about also get rid of #declare. Is it really needed. Why not just have
direct assignment without the need of a directive:
// Declare an object but don't create it
ball = sphere
{
...
}
// Create an object
object
{
ball // reference to previously declared object
....
}