code: function parse(value) {
    switch (type(value)) {
      case 'string':
        return parseString(value);
      case 'object':
        return parseObject(value);
      case 'array':
        return parseArray(value);
      default:
        return Template(function() {
          return value;
        }, []);
    }
  }
docs: Parses the given template object.  Returns a function `template(context)` that will "fill in" the template with the context object passed to it.  The returned function has a `parameters` property, which is an array of parameter descriptor objects, each of which has a `key` property and possibly a `defaultValue` property.