Even if an identifier is redefined you can still access the original though. Prepending the identifier name with :: will return the original identifier, OR an array of all inherited identifiers with that name.
You can also use the local_name to access a specific identifier, just prepend it like 'local_name::identifier'. This will return the named identifer in the program inherited with the given local_name. If no local_name was given to inherit , the last part of the path in the program name will be used as local_name.
Inherit calls master()->cast_to_program(<program name>) to get the program to inherit. For this reason there can be no inherits in the master object.
Inherit is not an expression or statement, it is a toplevel construct and must not be written inside a function body.
/* This is the file hello_world.lpc */
inherit "hworld.lpc";
int main()
{