Reading Maeder’s *The Mathematica Programmer* and in section 4.6 I am interested in the following line:

`Class[ class_Symbol, superclass_?ClassQ, variables : {_Symbol...}, methods : {{_Symbol, _Function}...} | {} ] := `

What do the colons after *variables* and *methods* mean? Also what does the … mean after _Symbol and after the list {_Symbol, _Function}?

My guess is that … means any number of the given type, in this case symbols and lists of symbols and functions, respectively. My guess for : is that variables and methods must be of the form that follows the colon.