method expr_list =
                  fun f ->
                    function
                    | [] -> pp f "[]"
                    | [ e ] -> pp f "[ %a ]" o#under_semi#expr e
                    | el ->
                        pp f "@[<2>[ %a@] ]" (list o#under_semi#expr ";@ ")
                          el