docs: def coroutine(func):
      """ Decorator for priming co-routines that use (yield) """
      def wrapper(*args, **kwargs):
          c = func(*args, **kwargs)
          c.next() # prime it for iteration
          return c
      return wrapper