gensync

Allows users to use generators in order to write common functions that can be both sync or async.