more interesting shift/reset examples in main, including a suspend/resume usecase