Generator의 세 타입 축
Generator<TYield, TReturn, TNext>는 밖으로 내보내는 값, 종료 값, 재개할 때 안으로 받는 값을 서로 분리합니다.
TYield
yield value가 done: false인 IteratorResult의 value로 소비자에게 전달됩니다.
TReturn
return value가 done: true인 마지막 IteratorResult의 value가 됩니다.
TNext
next(input)의 input이 중단된 yield 표현식의 결과로 제너레이터 안에 들어갑니다.
핵심타입 축은 값의 방향을 설명하고, create → yield → resume → done은 별도의 실행 시간 순서입니다.