code: function splitNesting(value) {
      value = value.trim();
      var result = [];
      var accum = '';
      var depth = 0;
      for (var offset = 0; offset < value.length; offset++) {
          var c = value[offset];
          if (c === ',' && depth === 0) {
              result.push(accum);
              accum = '';
          }
          else {
              accum += c;
              if (c === '(') {
                  depth++;
              }
              else if (c === ')') {
                  depth--;
                  if (depth === -1) {
                      throw new Error('unbalanced parenthsis');
                  }
              }
          }
      }
      if (accum) {
          result.push(accum);
      }
      return result;
  }
docs: /*
  function getTypes(coders) {
  var type = coderTuple(coders).type;
  return type.substring(6, type.length - 1);
  }