'Calls func(return_value, args_tuple, path) for each function return. This is a generator.
:param func: the function to call
:param runs: the maximum number of runs to execute
:param solutions: check only returns with this value as a possible solution
yields the return values of func'

def map_func(self, func, runs=None, solution=None):

    for (r, p) in self.iter_returns(runs=runs, solution=solution):
        (yield func(r, self.symbolic_args, p))
