From 99129d2518bd9fe92051aa89138cbb57c839a270 Mon Sep 17 00:00:00 2001 From: Emilio Jesus Gallego Arias Date: Wed, 28 Feb 2018 09:43:06 +0100 Subject: [ssreflect] Fix module scoping problems due to packing and mli files. Unfortunately, mli-only files cannot be included in packs, so we have the weird situation that the scope for `Tacexpr` is wrong. So we cannot address the module as `Ltac_plugin.Tacexpr` but it lives in the global namespace instead. This creates problem when using other modular build/packing strategies [such as #6857] This could be indeed considered a bug in the OCaml compiler. In order to remedy this situation we face two choices: - leave the module out of the pack (!) - create an implementation for the module I chose the second solution as it seems to me like the most sensible choice. cc: #6512. --- plugins/ssr/ssrparser.mli | 2 ++ plugins/ssr/ssrtacticals.mli | 18 ++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) (limited to 'plugins/ssr') diff --git a/plugins/ssr/ssrparser.mli b/plugins/ssr/ssrparser.mli index 130550388..2ac7c7e26 100644 --- a/plugins/ssr/ssrparser.mli +++ b/plugins/ssr/ssrparser.mli @@ -10,6 +10,8 @@ (* This file is (C) Copyright 2006-2015 Microsoft Corporation and Inria. *) +open Ltac_plugin + val ssrtacarg : Tacexpr.raw_tactic_expr Pcoq.Gram.entry val wit_ssrtacarg : (Tacexpr.raw_tactic_expr, Tacexpr.glob_tactic_expr, Geninterp.Val.t) Genarg.genarg_type val pr_ssrtacarg : 'a -> 'b -> (Notation_term.tolerability -> 'c) -> 'c diff --git a/plugins/ssr/ssrtacticals.mli b/plugins/ssr/ssrtacticals.mli index 84b184713..a5636ad0f 100644 --- a/plugins/ssr/ssrtacticals.mli +++ b/plugins/ssr/ssrtacticals.mli @@ -10,21 +10,23 @@ (* This file is (C) Copyright 2006-2015 Microsoft Corporation and Inria. *) +open Ltac_plugin +open Ssrmatching_plugin val tclSEQAT : - Ltac_plugin.Tacinterp.interp_sign -> - Ltac_plugin.Tacinterp.Value.t -> + Tacinterp.interp_sign -> + Tacinterp.Value.t -> Ssrast.ssrdir -> int Misctypes.or_var * - (('a * Ltac_plugin.Tacinterp.Value.t option list) * - Ltac_plugin.Tacinterp.Value.t option) -> + (('a * Tacinterp.Value.t option list) * + Tacinterp.Value.t option) -> Tacmach.tactic val tclCLAUSES : unit Proofview.tactic -> (Ssrast.ssrhyps * ((Ssrast.ssrhyp_or_id * string) * - Ssrmatching_plugin.Ssrmatching.cpattern option) + Ssrmatching.cpattern option) option) list * Ssrast.ssrclseq -> unit Proofview.tactic @@ -34,12 +36,12 @@ val hinttac : bool -> bool * Tacinterp.Value.t option list -> Ssrast.v82tac val ssrdotac : - Ltac_plugin.Tacinterp.interp_sign -> + Tacinterp.interp_sign -> ((int Misctypes.or_var * Ssrast.ssrmmod) * - (bool * Ltac_plugin.Tacinterp.Value.t option list)) * + (bool * Tacinterp.Value.t option list)) * ((Ssrast.ssrhyps * ((Ssrast.ssrhyp_or_id * string) * - Ssrmatching_plugin.Ssrmatching.cpattern option) + Ssrmatching.cpattern option) option) list * Ssrast.ssrclseq) -> Goal.goal Evd.sigma -> Goal.goal list Evd.sigma -- cgit v1.2.3