let rec app_term_type f default = function | Ctype typ -> f typ | Ltype ({lt_name = "set"},[t]) -> app_term_type f default t | Ltype _ | Lvar _ | Linteger | Lreal | Larrow _ -> default