/** Functions **/
/*
* @param {string} n - A string param
* @return {string} A good string
*
* @throws {FooException}
* @private
* @deprecated
* @see
*
* @function
* @class
*/
function foo(n) { return n }
/** Types **/
/**
* @param {string=} n - Optional param
* @param {string} [n] - Optional param
* @param {(string|number)} n - Multiple types
* @param {*} n - Any type
* @param {...string} n - Repeatable arguments
* @param {string} [n="hi"] - Optional param with default
* @param {string[]} n - An array of strings
*/
/** Variables **/
/**
* @type {number}
*/
var FOO = 1
/**
* @const {number}
*/
const FOO = 1
/** TypeDef **/
/**
* A song
* @typedef {Object} Song
* @property {string} title - The title
* @property {string} artist - The artist
* @property {number} year - The year
*/
/**
* Plays a song
* @param {Song} song - The {@link Song} to be played
*/
function play (song) {
}
/** Renaming **/
/*
* @alias Foo.bar
* @name Foo.bar
*/