let capture hints xps =
    if hints <> [] && xps <> [] then
      List.iter
        (function
           | Forall xs | Exists xs ->
               List.iter (fun h -> h#capture xs) hints
           | Let(x,t) -> List.iter (fun h -> h#subst x t) hints
           | Any(y,_) -> List.iter (fun h -> h#capture [y]) hints
        ) xps