code: function(list, type) {
              if (!isArray(list.value))
                  return list;
  
              function flatten_(list) {
                  return list.reduce(function(a, b) {
                      return a.concat(isArray(b.value)
                          ? flatten_(b.value) : b);
                  }, []);
              }
  
              // TODO: should not it try to determine the default return type by the type
              // of the input list top dimension? (for consistency with `cat`?)
  
              var ReturnType = type ? {
                  comma: Value,
                  space: Expression,
                  ",":   Value,
                  " ":   Expression
              }[type.value] : Value;
  
              if (!ReturnType) throw {
                  type:    "Argument",
                  message: "invalid `" + type.toCSS()
                      + "` delimiter. Expected `comma`, `space`, `,` or ` `\n"
              };
  
              return new ReturnType(flatten_(list.value));
          }
docs: ....................................................