My example would perhaps be clearer if I chose a(2)==One, but the affect is the same:
whenever forsome first returns a bool, which it always has to (because p takes a finite amount of the function), we get the first part of the function. And then call find again to get the rest of the function