Functions now generate recursively.