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