// These are some efuns that don't show up in the docs.  I've attempted to
// provide some explanations of the ones I know. --Tim
//
// The Contrib Package
//
int remove_shadow(object);
mixed query_notify_fail();

// returns only livings that called set_living_name() as well as
// enable_commands().  Supposed to be more efficient than livings()
object *named_livings();

// returns a copy of a value passed to it (doesn't copy object types).
// You need to use this with arrays, mappings and classes whenever you want
// to return one from a function etc. since they have implicit pointer
// semantics.  This basically means that when you create an array in memory,
// the variable you use for it just points to the actual memory space; thus
// if you return the variable from a function or assign it to another variable
// (e.g. x = ({}); y = x;) you have actually just made another pointer to
// _the same_ memory space, you have not copied the value.  This could really
// cause problems for instance if you did int* m = someone->query_money();
// on some user and then proceeded to change the values of m[0] and m[1].  If
// query_money() did not return copy(money_array) you would actually be
// changing the player's money supply in your computations!
mixed copy(mixed);

// returns a string array of all the functions defined in object.
// If second argument is 1 returns an array of arrays where each array is
// ({ string function, int number_of_args, string return_type, args...})
string *functions(object, int default: 0);

// returns a string array of all the variables defined in object.
// If second argument is 1 returns an array of arrays where each array is
// ({ string variable_name, string type })
string *variables(object, int default: 0);

// returns an array of all objects with heart beat enabled
object *heart_beats();

// returns a string with the appropriate color sequences inserted into it
// according to the values in mapping.  Format is %^COLOR%^
// ([ "COLOR" : "escape sequence" ])
string terminal_colour(string, mapping);

// returns the plural of a word
string pluralize(string);

// returns the number of lines in a file
int file_length(string);

string upper_case(string);

int replaceable(object, void | string *);
string program_info();
void store_variable(string, mixed);
mixed fetch_variable(string);

// disconnects an interactive object
int remove_interactive(object);

// returns the port from which the interactive object connected
int query_ip_port(void | object);

void debug_message(string);
object function_owner(function);
