docs: def coroutine(func):
      '''
      Initializes a coroutine -- essentially it just takes a
      generator function and calls generator.next() to get
      things going.
      '''
      def start(*args, **kwargs):
          cr = func(*args, **kwargs)
          cr.next()
          return cr
      return start