>This makes the code clearer, IMO.
Depends on how much state you need to pass between A, B1, B2 and C.
Depends on how much state you need to pass between A, B1, B2 and C.
EDIT: By the way, an anecdote. Years ago, I was working with an offshore developer who was producing huge scripts without any modularization whatsoever. In particular, we told him that a certain 2000-line script needed to be modularized, so he should break out steps into functions etc. He produced a new version containing two functions of 1000 lines each. The first function would prepare everything, then tail-call the second function with 27 arguments, most of them large intermediate data structures.