constructing thunk chains and doing the whole asynchronous promise chain thing are basically isomorphic operations
you can do both in a modanic structure and the code looks literally identical
i feel like there's something cool to make out of this observation but i am not the cat to press for it