docs: function () {
  
          var pairs = function (input) { var pairs = []
                          return __.each (input, function (x, i) { pairs.push ([x, i]) })
                                      .then (_.constant (pairs)) }
  
          return [    pairs ()         .assert ([]),
                      pairs (undefined).assert ([]),
  
                      pairs (42).assert ([[42, undefined]]),
                      
                      pairs ([    42,    48]) .assert ([[42,  0],  [48,  1 ]]),
                      pairs ({ 0: 42, 1: 48 }).assert ([[42, '0'], [48, '1']]),
  
                      __.each ([1,2], function (x, i) {
                                          if (i > 0) $fail // should stop at 0, due to rejection
                                          return Promise.reject ('foo') }).assertRejected ('foo') ] }