method sum_type =
                  fun f ->
                    function
                    | Ast.TyNil _ -> pp f "[]"
                    | t -> pp f "@[<hv0>[ %a ]@]" o#ctyp t