A function is defined with the id and the function name. All other values in the current compound are used as configuration for the function. If the compound func. is defined in the root node, then the library and function from this compound configuration are used, otherwise 'snd_func_' is prefixed to the string and code from the ALSA library is used. The definition of a function looks like:
func.remove_first_char { lib "/usr/lib/libasoundextend.so" func "extend_remove_first_char" }