Initially I tried doing this:
```
    def _get_list(self, f, o):
        try:
            if(isinstance(o, Iterable)):
                o = list(o)
                return type(o)(self._get_list(f, value) for value in o)
            else:
                return f(o)
        except TypeError:
            return f(o)
```
but then I thought it wasn't needed