let rec print_subst fmt = function | [] -> () | [x,y] -> fprintf fmt "%a -> %a" print x print y | (x,y)::r -> fprintf fmt "%a -> %a, %a" print x print y print_subst r