It's running `caller` itself that's expensive. While it's technically `O(n)`, the vast majority of executions are only going to iterate a couple of times.