method ctyp1 =
fun f ->
function
| Ast.TyApp (_, t1, t2) ->
(match get_ctyp_args t1 [ t2 ] with
| (_, [ _ ]) ->
pp f "@[<2>%a@ %a@]" o#simple_ctyp t2
o#simple_ctyp t1
| (a, al) ->
pp f "@[<2>(%a)@ %a@]" (list o#ctyp ",@ ") al
o#simple_ctyp a)
| Ast.TyPol (_, t1, t2) ->
let (a, al) = get_ctyp_args t1 []
in
pp f "@[<2>%a.@ %a@]" (list o#ctyp "@ ") (a :: al)
o#ctyp t2
| Ast.TyPrv (_, t) ->
pp f "@[private@ %a@]" o#simple_ctyp t
| t -> o#simple_ctyp f t