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