Emacs provides `prog1', `prog2' and `progn' to group statements and return the value of first, second or last form. This package extends this notion to allow arbitrary index. The macro `prognth' takes as a first argument the index of the form whose value is to be returned. If the index is 1, 2 or greater than length of the body, the standard emacs forms are used. Otherwise, this translates to (prog1 (progn ... first INDEX forms) rest) Additionally, `progX' for X from 3 to 9 are generated for easier usage.