function takeWhile(predicate) {
        return function(source) {
          return source.lift(new TakeWhileOperator(predicate))
        }
      }
@callback tmpNameCallback
@param {?Error} err the error object if anything goes wrong
@param {string} name the temporary file name