let forall xs p = match !context with | [] -> do_forall xs p | c :: _ -> if has_var xs c.bindings c.hints then ( c.bindings <- Forall xs :: c.bindings ; p ) else do_forall xs p