docs: function quasiquoter(forms) {
      if(sl.isAtom(forms)) {
        return sl.list("quote", forms);
      }
      else if(sl.isList(forms) && forms.length === 0) {
        return forms;
      }
      else if(forms[0].value === 'unquote') {
        return forms[1];
      }
      else if(sl.isList(forms) && forms.length === 1) {
        return quasiquoter(forms[0]);
      }
      else if(sl.isList(forms[0]) && forms[0][0].value === "splice-unquote") {
        return sl.list("concat",
                forms[0][1],
                quasiquoter(forms.slice(1)));
      }
      else {
        return new sl.list("cons",
                quasiquoter(forms[0]),
                quasiquoter(forms.slice(1)));
      }
  }