Co_Routines module is suitable for suspending and resuming execution on certain locations. A list of tasks can be built upon: cooperative multitasking, state machines, infinite lists, pipes, etc. Task represent the simplest form for periodic execution. Scheduler is for runtime control of both.