Added a type for the lexer monoid.  It took a while because of the evil corner case of ``(- ! (+'' followed by a newline.