method class_type =
fun f ct ->
let () = o#node f ct Ast.loc_of_class_type
in
match ct with
| Ast.CtFun (_, t, ct) ->
pp f "@[<2>[ %a ] ->@ %a@]" o#simple_ctyp t
o#class_type ct
| Ast.CtCon (_, Ast.ViNil, i, (Ast.TyNil _)) ->
pp f "@[<2>%a@]" o#ident i
| Ast.CtCon (_, Ast.ViNil, i, t) ->
pp f "@[<2>%a [@,%a@]@,]" o#ident i o#class_params
t
| Ast.CtCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)),
(Ast.TyNil _)) -> pp f "@[<2>virtual@ %a@]" o#var i
| Ast.CtCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)), t)
->
pp f "@[<2>virtual@ %a@ [@,%a@]@,]" o#var i
o#class_params t
| ct -> super#class_type f ct