docs: def worklog(columns=None, bullet='  * ', stdout=Ellipsis, stderr=Ellipsis, verbose=False):
      '''
      worklog() yields a worklog object using sys.stdout and sys.stderr as the outputs.
      worklog(n) yields a worklog that formats output to n columns.
  
      The following options may be give:
        * bullet (default: '  * ') the bullet-text to print for each bullet.
        * stdout (default: Ellipsis) the file to use in place of stdout; if None, no stdout is
          printed; if Ellipsis, then is set to sys.stdout if verbose is True and None otherwise.
        * stderr (default: Ellipsis) the file to use in place of stderr; if None, no stderr is
          printed; if Ellipsis, then is set to sys.stderr.
        * verbose (default: False) specifies whether to use verbose output. This only has an effect
          if the stdout option is Ellipsis.
      '''
      if columns is None:
          try: columns = int(os.environ['COLUMNS'])
          except: columns = 80
      if stdout is Ellipsis:
          if verbose: stdout = sys.stdout
          else: stdout = None
      return WorkLog(columns=columns, bullet=bullet, stdout=stdout, stderr=stderr)