let subst x v p = match !context with | [] -> do_subst x v p | c::_ -> subst_in_bindings c x (F.wrap v) p