-- //     [5] word ::= ( char_word - ',' - '(' - ')' )+

-- for comments to work, either (a) '#' can't appear in words or
-- (b) it can't appear at the beginning of words and must be separated
-- by a space to start a comment. I'll go with option (a).
-- On a related note, why is char_word called that if it doesn't
-- actually specify the characters that can appear in words?

word = liftM2 (:) (try headWordChar) (option [] $ many1 (try tailWordChar))
word = liftM2 (:) (try headWordChar) (option [] $ many1 (try tailWordChar))
word = liftM2 (:) (try headWordChar) (option [] $ many1 (try tailWordChar))