Provides abstractions for a loop that can be executed, keeping a state on every iteration.
State
Runs this loop.
initial loop state
Runs this loop
Converts this loop to a stateless loop, with a predefined initial state.