'For a call object that represents multiple calls, `call_list`
returns a list of all the intermediate calls as well as the
final call.'

def call_list(self):

    vals = []
    thing = self
    while (thing is not None):
        if thing.from_kall:
            vals.append(thing)
        thing = thing.parent
    return _CallList(reversed(vals))
