<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _call_fan(branch, calls, executable):
 """Appends a list of callees to the branch for each parent in the call list that calls this executable. """

    #Since we don't keep track of the specific logic in the executables
    #it is possible that we could get a infinite recursion of executables
    #that keep calling each other.
    if executable in branch:
        return
    branch.append(executable)
    
    if executable.name in calls:
        for caller in calls[executable.name]:
            twig = []
            _call_fan(twig, calls, caller)
            branch