This is a curious construction, I admit. But note that it's basically a recursive act here, because we check our function against the error map, which gives us a new function, which we then have to check against the error map. We only exit out when the function maps no further.