Since it is a foldr, the first action can be run without knowing the following ones. That is, at no time all actions must be allocated.In particular, will the compiler be able to avoid allocating when building up that large monadic computation
in the foldrWithKey?