fixed small bug in defining functions; grouped multiple separators into one to void too many AST nodes