'Returns a set of all variables possibly used in the routine.
For routines with unnamed return values, the dummies that may or
may not be used will be included in the set.'

@property
def variables(self):

    v = set(self.local_vars)
    for arg in self.arguments:
        v.add(arg.name)
    for res in self.results:
        v.add(res.result_var)
    return v
