default to inject over recursive, as inject doesn't have the same problems with super deep stacks