code: function asyncifyFunctions(forms) {
    // for each subexpression form...
    forms.forEach(function(form) {
      if (sl.isList(form)) {
        if(sl.typeOf(form[0]) === 'symbol' &&
          sl.valueOf(form[0]) === 'function' &&
          asyncNeeded(form)) {
            form.unshift(sl.atom("async"));
            asyncifyFunctions(form);
        }
        else {
          asyncifyFunctions(form);
        }
      }
    });
  }
docs: Had to timebox this - double check it later - I've yet to handle functions nested down under other functions - in that case isn't co.wrap needed to be added both at the lowest level and at the higher levels?  Right now I stop at the higher levels.