So, there are two ways to do this, I feel.  I have less erlang experience than most of engs, so take anything I say with a grain of salt.  But, I did find the code hard to understand, so maybe this is a thing to learn wrt the understandability of erlang to people who're relatively new to it.  As you say, there are style issues involved, 

Strategy A:

```erlang 
    _ = lists:foldl(fun({A0, B0, Cnt}) ->
                            {resolve_mutate_store(PB, Cnt, A0),
                             resolve_mutate_store(PB, Cnt-1, B0),
                             Cnt-2}
                    end, {A, B, 99}, lists:seq(1,50)).
```

Strategy B:

```erlang
explode(PB, Objs, Cnt) ->
    alternate(Objs, Cnt, fun(O) -> 


```