method sum_type =
                  fun f t ->
                    match Ast.list_of_ctyp t [] with
                    | [] -> ()
                    | ts -> pp f "@[<hv0>| %a@]" (list o#ctyp "@ | ") ts