pratt.brackets can handle empty expressions