def load_toolkit_functions(add_idle_call, remove_idle_call,
    add_timeout_call, remove_timeout_call, start_event_loop, stop_event_loop):
    """
        'add_idle_call' should take a function as 1st argument, the return 
        value is passed back to 'remove_idle_call'. Internally a cache is maintained
        in which keys are functions and values are return values.
        'add_timeout_call' and 'remove_timeout_call' work analogously
        start_event_loop and stop_event_loop don't take arguments and should be self-explanatory.
    """
    global __add_idle_call
    global __remove_idle_call
    global __add_timeout_call
    global __remove_timeout_call
    global __start_event_loop
    global __stop_event_loop
    assert callable(add_idle_call)
    assert callable(remove_idle_call)
    assert callable(add_timeout_call)
    assert callable(remove_timeout_call)
    assert callable(start_event_loop)
    assert callable(stop_event_loop)
    __add_idle_call = add_idle_call
    __remove_idle_call = remove_idle_call
    __add_timeout_call = add_timeout_call
    __remove_timeout_call = remove_timeout_call
    __start_event_loop = start_event_loop
    __stop_event_loop = stop_event_loop
