#compsci Coroutines are computer program components (read: functions) that allow execution to be suspended and resumed, generalizing subroutines (regular functions) for cooperative multitasking