gimgen allows you to wrap a coroutine around a function and have invocations of the function themselves be signals. This can make it very easy to implement certain functional decorations

Move your mouse over the pink area below. The number will increment every 1 second as long as you are moving your mouse (throttle).

Move your mouse over the pink area below. The number will increment 1 second after you have stopped moving your mouse (debounce).

See code below (or even better look at source or devtools)