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