Added a cond-let macro to clean up parser