docs: function () {
  
      /*  Example object  */
  
          var fs = {
  
          /*  Shouldn't be converted  */
  
              42: 42,
              dontTouchMe:  function () { $assert (arguments.length === 0); return 42 },
              dontTouchMe2: function () { $assert (arguments.length === 0); return 42 },
              readFileSync: function () { $assert (arguments.length === 0); return 42 },
  
          /*  Will be promisified */
  
              readFile: function (path,   callback) { $assert (this === fs)
                              if (path) { callback (null, 'contents of ' + path) }
                                   else { callback ('path empty') } } }
  
      /*  Run     */
  
          const fsAsync = Function.promisifyAll (fs, { except: _.endsWith.$$ ('Sync').or (['dontTouchMe', 'dontTouchMe2'].asSet.matches) })
  
      /*  Check if 'except' worked successfully */
  
          $assert (fsAsync.dontTouchMe (),
                   fsAsync.dontTouchMe2 (),
                   fsAsync.readFileSync (), fsAsync['42'], 42)
  
      /*  Check if 'readFile' converted successfully */
  
          return __.all ([    fsAsync.readFile (null) .assertRejected ('path empty'),
                              fsAsync.readFile ('foo').assert         ('contents of foo') ]) }