translate parseSExp to use do-notation (see parseSExp')