method match_case_aux =
fun f ->
function
| Ast.McNil _ -> ()
| Ast.McAnt (_, s) -> o#anti f s
| Ast.McOr (_, a1, a2) ->
pp f "%a%a" o#match_case_aux a1 o#match_case_aux a2
| Ast.McArr (_, p, (Ast.ExNil _), e) ->
pp f "@ | @[<2>%a@ ->@ %a@]" o#patt p
o#under_pipe#expr e
| Ast.McArr (_, p, w, e) ->
pp f "@ | @[<2>%a@ when@ %a@ ->@ %a@]" o#patt p
o#under_pipe#expr w o#under_pipe#expr e