let rec tycon_name = function | TTerm (App (u, _)) -> tycon_name u | TVariable v as t -> t | _ -> assert false