code: function compileValue(value) {
  		if (value.subtype === 'array') {
  			return compileArray(value)
  		} else if (value.subtype === 'object') {
  			return compileObject(value)
  		} else if (value.subtype === 'mixin') {
  			return compileMixin(value)
  		} else if (value.subtype === 'js') {
  			return compileJS(value)
  		} else if (value.subtype === 'function') {
  			return compileFunction(value)
  		}
  		throw new Error('Invalid subtype: ' + value.subtype)
  	}
docs: Compile a value and append to generated code
  @param {Value} value
  @returns {string} - the resulting variable name
  @private