docs: function IF(condTask, trueTask, falseTask) {
      condTask = (condTask != null) ? promisen(condTask) : promisen();
      trueTask = (trueTask != null) ? promisen(trueTask) : promisen();
      falseTask = (falseTask != null) ? promisen(falseTask) : promisen();
      return conditional;
  
      function conditional(value) {
        var condFunc = condTask.bind(this, value);
        var trueFunc = trueTask.bind(this, value);
        var falseFunc = falseTask.bind(this, value);
        return condFunc().then(switching);
  
        function switching(condition) {
          return condition ? trueFunc() : falseFunc();
        }
      }
    }