Powerful pattern enabled by transient storage.
The user calls NonCustodialFlashLoans#startLoan, and control is handed back to them using the IStartCallback#start callback.
The user can then borrow as much of any token they want, from any user that has sent approval, within this callback by calling NonCustodialFlashLoans#borrow.
The contract uses transient storage to track what has been borrowed and check the tokens are returned at the end. The SLOAD/SSTORE’s make this pattern gas-infeasible without transient storage.
Credit: @sendmoodz for this idea