let rec pp_print_typed_var_list db ppf = function (* Print nothing for the empty list *) | [] -> () (* Print the first typed variable *) | s :: tl -> (* Increment variable index *) let db' = succ db in (* Print variable as (Xn t) *) Format.fprintf ppf "@[<hv 1>X%i::%a@]" db' pp_print_type s; (* Add space and recurse if more bindings follow *) if not (tl = []) then (Format.pp_print_space ppf (); pp_print_typed_var_list db' ppf tl)