GET-LANGUAGES (&KEY (GROUP-PER-FAMILY NIL) (ORDER NIL))
RETURN: If group-per-family is true, then a list of ( family (name code)* ) else a list of ( name code family ). In both cases, the list(s) of languages are ordered as indicated by the order list, which may contain any combination of: :NAME :CODE :FAMILY.
DO: Replace in place in TREE all occurence of a string or a symbol of length>2 by a string-capitalize'd copy.
SPLIT-GROUPS (LIST CUT-INDICATOR)
RETURN: A list of sublists of LIST, split where the CUT-INDICATOR function indicated. LIST: A list. CUT-INDICATOR: A function of two successive elements of the list, indicating whether the list must be split between the two elements.
GET-FIELD (RECORD ORDER-CODE)
A list of language records: ( name code family ).