Arm's-length recursion