diff --git a/configurator.ml b/configurator.ml
index 4bf225310fb71852fd541c89f62742c9065f17fc..7be17a56ace254186509392947520793a2d73a4b 100644
--- a/configurator.ml
+++ b/configurator.ml
@@ -59,7 +59,6 @@ module C_preprocessor = struct (* This could be put in Dune? *)
   type t =
     { preprocessor: string
     ; pp_opt: string option
-    ; is_gnu: bool
     }
 
   let stdout_contains out str =
@@ -97,24 +96,9 @@ module C_preprocessor = struct (* This could be put in Dune? *)
       Temp.create ~dir ~suffix:".c" (fun name -> write_file name code) in
     C.Process.run configurator ~dir preprocessor (options @ [ file ])
 
-  let is_gnu configurator preprocessor =
-    let code = {|#ifdef _FC_UNDEFINED_SYMBOL
-#error This should not remain after preprocessing
-#endif
-int kept_after_preprocessing = 42;
-|}
-    in
-    (* GNU preprocessors are always compatible with '-E'.
-       For 'cpp', the '-E' flag is unnecessary, but still works. *)
-    let result = call configurator preprocessor ["-E"] code in
-    result.exit_code = 0 &&
-    stdout_contains result.stdout "kept_after_preprocessing" &&
-    not (stdout_contains result.stdout "should not remain")
-
   let get configurator =
     let preprocessor, pp_opt = find_preprocessor configurator in
-    let is_gnu = is_gnu configurator preprocessor in
-    { preprocessor ; pp_opt; is_gnu }
+    { preprocessor ; pp_opt }
 
   let preprocess configurator t options code =
     call configurator t.preprocessor (Option.to_list t.pp_opt @ options) code
diff --git a/dev/dune-workspace.bench b/dev/dune-workspace.bench
index 1f5ad5f7195c1c589acd1a37e04a56aa999a51c3..a4c42e207dd6c5096b61b4434a3c803323ca35ef 100644
--- a/dev/dune-workspace.bench
+++ b/dev/dune-workspace.bench
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/dev/dune-workspace.cover b/dev/dune-workspace.cover
index 86349742cd4e9d71bf7ee44ed42b70934fd3cf91..98a198201406e64560f57f798cb2078d4f6cb06c 100644
--- a/dev/dune-workspace.cover
+++ b/dev/dune-workspace.cover
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/doc/developer/dune-workspace.bench b/doc/developer/dune-workspace.bench
index 87e6d04e0ad58aba035cac6a3f7b7c68eda27674..8416a8f539d444aed0ea1f59196c2783dabd484f 100644
--- a/doc/developer/dune-workspace.bench
+++ b/doc/developer/dune-workspace.bench
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 (context
  (default
   (name bench)
diff --git a/doc/developer/examples/acsl_extension_ext_types/dune-project b/doc/developer/examples/acsl_extension_ext_types/dune-project
index 5646419c5301bfc9204bb63e0d35fb73a2459762..58bd1e5c15ec9baaa10bfa8608d9966dca0aac59 100644
--- a/doc/developer/examples/acsl_extension_ext_types/dune-project
+++ b/doc/developer/examples/acsl_extension_ext_types/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 (using dune_site 0.1)
 
 (name frama-c-example)
diff --git a/doc/developer/examples/acsl_extension_foo/dune-project b/doc/developer/examples/acsl_extension_foo/dune-project
index 5646419c5301bfc9204bb63e0d35fb73a2459762..58bd1e5c15ec9baaa10bfa8608d9966dca0aac59 100644
--- a/doc/developer/examples/acsl_extension_foo/dune-project
+++ b/doc/developer/examples/acsl_extension_foo/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 (using dune_site 0.1)
 
 (name frama-c-example)
diff --git a/doc/developer/examples/callstack/dune-project b/doc/developer/examples/callstack/dune-project
index 5646419c5301bfc9204bb63e0d35fb73a2459762..58bd1e5c15ec9baaa10bfa8608d9966dca0aac59 100644
--- a/doc/developer/examples/callstack/dune-project
+++ b/doc/developer/examples/callstack/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 (using dune_site 0.1)
 
 (name frama-c-example)
diff --git a/doc/developer/examples/syntactic_check/dune-project b/doc/developer/examples/syntactic_check/dune-project
index 5646419c5301bfc9204bb63e0d35fb73a2459762..58bd1e5c15ec9baaa10bfa8608d9966dca0aac59 100644
--- a/doc/developer/examples/syntactic_check/dune-project
+++ b/doc/developer/examples/syntactic_check/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 (using dune_site 0.1)
 
 (name frama-c-example)
diff --git a/doc/developer/tutorial/hello/src/dune-project b/doc/developer/tutorial/hello/src/dune-project
index 1ceb1f524013c791e4c7f6892c9fe7684e5024cb..f4d53a0723768620f6bd9b2d38f64d44403a1324 100644
--- a/doc/developer/tutorial/hello/src/dune-project
+++ b/doc/developer/tutorial/hello/src/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/doc/developer/tutorial/hello/v1-simple/dune-project b/doc/developer/tutorial/hello/v1-simple/dune-project
index df0ab2a885a56ee655b69017390cbe479c05fbee..ed9003050122d5b61d407b7d4d0d2c71ee226530 100644
--- a/doc/developer/tutorial/hello/v1-simple/dune-project
+++ b/doc/developer/tutorial/hello/v1-simple/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 (using dune_site 0.1)
 
 (name frama-c-hello)
diff --git a/doc/developer/tutorial/hello/v2-register/dune-project b/doc/developer/tutorial/hello/v2-register/dune-project
index df0ab2a885a56ee655b69017390cbe479c05fbee..ed9003050122d5b61d407b7d4d0d2c71ee226530 100644
--- a/doc/developer/tutorial/hello/v2-register/dune-project
+++ b/doc/developer/tutorial/hello/v2-register/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 (using dune_site 0.1)
 
 (name frama-c-hello)
diff --git a/doc/developer/tutorial/hello/v3-log/dune-project b/doc/developer/tutorial/hello/v3-log/dune-project
index df0ab2a885a56ee655b69017390cbe479c05fbee..ed9003050122d5b61d407b7d4d0d2c71ee226530 100644
--- a/doc/developer/tutorial/hello/v3-log/dune-project
+++ b/doc/developer/tutorial/hello/v3-log/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 (using dune_site 0.1)
 
 (name frama-c-hello)
diff --git a/doc/developer/tutorial/hello/v4-options/dune-project b/doc/developer/tutorial/hello/v4-options/dune-project
index df0ab2a885a56ee655b69017390cbe479c05fbee..ed9003050122d5b61d407b7d4d0d2c71ee226530 100644
--- a/doc/developer/tutorial/hello/v4-options/dune-project
+++ b/doc/developer/tutorial/hello/v4-options/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 (using dune_site 0.1)
 
 (name frama-c-hello)
diff --git a/doc/developer/tutorial/hello/v5-multiple/dune-project b/doc/developer/tutorial/hello/v5-multiple/dune-project
index df0ab2a885a56ee655b69017390cbe479c05fbee..ed9003050122d5b61d407b7d4d0d2c71ee226530 100644
--- a/doc/developer/tutorial/hello/v5-multiple/dune-project
+++ b/doc/developer/tutorial/hello/v5-multiple/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 (using dune_site 0.1)
 
 (name frama-c-hello)
diff --git a/doc/developer/tutorial/hello/v6-test-with-bug/dune-project b/doc/developer/tutorial/hello/v6-test-with-bug/dune-project
index df0ab2a885a56ee655b69017390cbe479c05fbee..ed9003050122d5b61d407b7d4d0d2c71ee226530 100644
--- a/doc/developer/tutorial/hello/v6-test-with-bug/dune-project
+++ b/doc/developer/tutorial/hello/v6-test-with-bug/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 (using dune_site 0.1)
 
 (name frama-c-hello)
diff --git a/doc/developer/tutorial/hello/v7-doc/dune-project b/doc/developer/tutorial/hello/v7-doc/dune-project
index df0ab2a885a56ee655b69017390cbe479c05fbee..ed9003050122d5b61d407b7d4d0d2c71ee226530 100644
--- a/doc/developer/tutorial/hello/v7-doc/dune-project
+++ b/doc/developer/tutorial/hello/v7-doc/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 (using dune_site 0.1)
 
 (name frama-c-hello)
diff --git a/doc/developer/tutorial/viewcfg/v1-simple/dune-project b/doc/developer/tutorial/viewcfg/v1-simple/dune-project
index f51b073e8f54f8f308c6d4ccd4f93156ad87be86..fea29a8a57b3ebf740a5340d6274c2c650d20a07 100644
--- a/doc/developer/tutorial/viewcfg/v1-simple/dune-project
+++ b/doc/developer/tutorial/viewcfg/v1-simple/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 (using dune_site 0.1)
 
 (name frama-c-view-cfg)
diff --git a/doc/developer/tutorial/viewcfg/v2-options/dune-project b/doc/developer/tutorial/viewcfg/v2-options/dune-project
index f51b073e8f54f8f308c6d4ccd4f93156ad87be86..fea29a8a57b3ebf740a5340d6274c2c650d20a07 100644
--- a/doc/developer/tutorial/viewcfg/v2-options/dune-project
+++ b/doc/developer/tutorial/viewcfg/v2-options/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 (using dune_site 0.1)
 
 (name frama-c-view-cfg)
diff --git a/doc/developer/tutorial/viewcfg/v3-eva/dune-project b/doc/developer/tutorial/viewcfg/v3-eva/dune-project
index f51b073e8f54f8f308c6d4ccd4f93156ad87be86..fea29a8a57b3ebf740a5340d6274c2c650d20a07 100644
--- a/doc/developer/tutorial/viewcfg/v3-eva/dune-project
+++ b/doc/developer/tutorial/viewcfg/v3-eva/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 (using dune_site 0.1)
 
 (name frama-c-view-cfg)
diff --git a/doc/developer/tutorial/viewcfg/v4-bogue/dune-project b/doc/developer/tutorial/viewcfg/v4-bogue/dune-project
index f51b073e8f54f8f308c6d4ccd4f93156ad87be86..fea29a8a57b3ebf740a5340d6274c2c650d20a07 100644
--- a/doc/developer/tutorial/viewcfg/v4-bogue/dune-project
+++ b/doc/developer/tutorial/viewcfg/v4-bogue/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 (using dune_site 0.1)
 
 (name frama-c-view-cfg)
diff --git a/doc/developer/tutorial/viewcfg/v5-state/dune-project b/doc/developer/tutorial/viewcfg/v5-state/dune-project
index f51b073e8f54f8f308c6d4ccd4f93156ad87be86..fea29a8a57b3ebf740a5340d6274c2c650d20a07 100644
--- a/doc/developer/tutorial/viewcfg/v5-state/dune-project
+++ b/doc/developer/tutorial/viewcfg/v5-state/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 (using dune_site 0.1)
 
 (name frama-c-view-cfg)
diff --git a/doc/developer/tutorial/viewcfg/v6-state-clear/dune-project b/doc/developer/tutorial/viewcfg/v6-state-clear/dune-project
index f51b073e8f54f8f308c6d4ccd4f93156ad87be86..fea29a8a57b3ebf740a5340d6274c2c650d20a07 100644
--- a/doc/developer/tutorial/viewcfg/v6-state-clear/dune-project
+++ b/doc/developer/tutorial/viewcfg/v6-state-clear/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 (using dune_site 0.1)
 
 (name frama-c-view-cfg)
diff --git a/dune-project b/dune-project
index 2882306b7d98cfa4b7d3adbd7e003ca3ed203a04..6dcfb7a66093e2a97ded1ace3e4e5bd25f4c140b 100644
--- a/dune-project
+++ b/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/opam b/opam
index 0cfa34fd454e3ad3ec085f01f91609aa8f0f5024..f3e6a0dc71edecd6c6ef525a3f0189a9d652b829 100644
--- a/opam
+++ b/opam
@@ -119,7 +119,7 @@ run-test: [
 ]
 
 depends: [
-  "dune" { >= "3.2.0" | (>= "3.5.0" & os="macos") }
+  "dune" { >= "3.3.0" | (>= "3.5.0" & os="macos") }
   "dune-configurator"
   "dune-site"
 
diff --git a/src/kernel_services/abstract_interp/abstract_interp.mli b/src/kernel_services/abstract_interp/abstract_interp.mli
index c2c809122d2058859a8f14bf28e6e114bfe1de90..bcc9ed9915bfa80e78859a968f02fe3578a49523 100644
--- a/src/kernel_services/abstract_interp/abstract_interp.mli
+++ b/src/kernel_services/abstract_interp/abstract_interp.mli
@@ -118,7 +118,7 @@ module type Collapse = sig val collapse : bool end
 
 (** If [C.collapse] then [L1.bottom,_] = [_,L2.bottom] = [bottom] *)
 (* Untested *)
-module Make_Lattice_Product (L1:AI_Lattice_with_cardinal_one) (L2:AI_Lattice_with_cardinal_one) (C:Collapse):
+module Make_Lattice_Product (L1:AI_Lattice_with_cardinal_one) (L2:AI_Lattice_with_cardinal_one) (_:Collapse):
   Lattice_Product with type t1 = L1.t and type t2 = L2.t
 
 (** Uncollapsed product. Literally the set of (e1, e2) ordered pairs
diff --git a/src/kernel_services/abstract_interp/lmap.ml b/src/kernel_services/abstract_interp/lmap.ml
index 2b584a1a1d28f8f3331bd0325152a951a5a6e97f..5717cc78c7bfb6b68537bb40f4533e52e7101cdd 100644
--- a/src/kernel_services/abstract_interp/lmap.ml
+++ b/src/kernel_services/abstract_interp/lmap.ml
@@ -32,6 +32,16 @@ type 'a default_contents =
   | Constant of 'a
   | Other
 
+
+module type Default_offsetmap = sig
+  type v
+  type offsetmap
+
+  val name: string
+  val default_offsetmap : Base.t -> offsetmap Lattice_bounds.or_bottom
+  val default_contents: v default_contents
+end
+
 module Make_LOffset
     (V: sig
        include Offsetmap_lattice_with_isotropy.S
@@ -40,11 +50,8 @@ module Make_LOffset
     (Offsetmap: Offsetmap_sig.S
      with type v = V.t
       and type widen_hint = V.numerical_widen_hint)
-    (Default_offsetmap: sig
-       val name: string
-       val default_offsetmap : Base.t -> Offsetmap.t or_bottom
-       val default_contents: V.t default_contents
-     end)
+    (Default_offsetmap: Default_offsetmap with type v := V.t
+                                           and type offsetmap := Offsetmap.t)
 =
 struct
 
diff --git a/src/kernel_services/abstract_interp/lmap.mli b/src/kernel_services/abstract_interp/lmap.mli
index bf5710f72eef96ef60c7458e28e8acd2937b9a87..b7bfddf3611be3b582087c74b25e0abcb1a05cdb 100644
--- a/src/kernel_services/abstract_interp/lmap.mli
+++ b/src/kernel_services/abstract_interp/lmap.mli
@@ -25,51 +25,56 @@
     @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> Plug-in Development Guide *)
 
 (** Contents of a variable when it is not present in the state.
-    See function [default_contents] in the functor below *)
+    See function [default_contents] in the signature below *)
 type 'a default_contents =
   | Bottom
   | Top of 'a
   | Constant of 'a
   | Other
 
+module type Default_offsetmap = sig
+  type v
+  type offsetmap
+
+  val name: string
+  (** Used to create different datatypes each time the functor is applied *)
+
+  val default_offsetmap : Base.t -> offsetmap Lattice_bounds.or_bottom
+  (** Value returned when a map is queried, and the base is not present.
+      [`Bottom] indicates that the base is never bound in such a map. *)
+
+  val default_contents: v default_contents
+  (** This function is used to optimize functions that add keys in a map,
+      in particular when maintaining canonicity w.r.t. default contents.
+      It describes the contents [c] of the offsetmap
+      resulting from [default_offsetmap b]. The possible values are:
+      - [Bottom] means that [c] is [V.bottom] everywhere, and furthermore
+        that [V.bottom] has an empty concretization. We deduce from this
+        fact that unmapped keys do not contribute to a join, and that
+        [join c v] is never [c] as soon as [v] is not itself [v].
+      - [Top] means that [c] is [V.top] everywhere. Thus unmapped keys
+        have a default value more general than the one in a map where the
+        key is bound.
+      - [`Constant v] means that [c] is an offsetmap with a single interval
+        containing [v] everywhere. [v] must be isotropic (in the sense
+        of {!V.is_isotropic}).
+      - [`Other] means that [default_offsetmap] returns something arbitrary.
+
+      This function is only used on keys that change values. Thus it is
+      safe to have [default_offsetmap] return something that do not
+      match [default_contents] on constant keys.
+  *)
+end
+
 module Make_LOffset
     (V: sig
        include Offsetmap_lattice_with_isotropy.S
        include Lattice_type.With_Top_Opt with type t := t
      end)
-    (Offsetmap: Offsetmap_sig.S
-     with type v = V.t
-      and type widen_hint = V.numerical_widen_hint)
-    (Default_offsetmap: sig
-       val name: string
-       (** Used to create different datatypes each time the functor is applied *)
-
-       val default_offsetmap : Base.t -> Offsetmap.t Lattice_bounds.or_bottom
-       (** Value returned when a map is queried, and the base is not present.
-           [`Bottom] indicates that the base is never bound in such a map. *)
-
-       val default_contents: V.t default_contents
-       (** This function is used to optimize functions that add keys in a map,
-           in particular when maintaining canonicity w.r.t. default contents.
-           It describes the contents [c] of the offsetmap
-           resulting from [default_offsetmap b]. The possible values are:
-           - [Bottom] means that [c] is [V.bottom] everywhere, and furthermore
-             that [V.bottom] has an empty concretization. We deduce from this
-             fact that unmapped keys do not contribute to a join, and that
-             [join c v] is never [c] as soon as [v] is not itself [v].
-           - [Top] means that [c] is [V.top] everywhere. Thus unmapped keys
-             have a default value more general than the one in a map where the
-             key is bound.
-           - [`Constant v] means that [c] is an offsetmap with a single interval
-             containing [v] everywhere. [v] must be isotropic (in the sense
-             of {!V.is_isotropic}).
-           - [`Other] means that [default_offsetmap] returns something arbitrary.
-
-           This function is only used on keys that change values. Thus it is
-           safe to have [default_offsetmap] return something that do not
-           match [default_contents] on constant keys.
-       *)
-     end):
+    (Offsetmap: Offsetmap_sig.S with type v = V.t
+                                 and type widen_hint = V.numerical_widen_hint)
+    (_: Default_offsetmap with type v := V.t
+                           and type offsetmap := Offsetmap.t):
   Lmap_sig.S
   with type v = V.t
    and type widen_hint_base = V.numerical_widen_hint
diff --git a/src/kernel_services/abstract_interp/lmap_sig.ml b/src/kernel_services/abstract_interp/lmap_sig.ml
index d901a9cf110d08c59a7affde179a38ede87d81cd..37839ffd1a34d994a3d7d70bb5953e27aca0c599 100644
--- a/src/kernel_services/abstract_interp/lmap_sig.ml
+++ b/src/kernel_services/abstract_interp/lmap_sig.ml
@@ -73,7 +73,7 @@ module type S = sig
   val join : t -> t -> t
   val is_included : t -> t -> bool
 
-  module Make_Narrow(X: sig
+  module Make_Narrow(_: sig
       include Lattice_type.With_Top with type t := v
       include Lattice_type.With_Narrow with type t := v
       val bottom_is_strict: bool
diff --git a/src/kernel_services/abstract_interp/map_lattice.mli b/src/kernel_services/abstract_interp/map_lattice.mli
index 07224c875db63932871bbb9992f47bb11ddee6c6..baed8f769c4bb80eceb05f8048989b2bc586a577 100644
--- a/src/kernel_services/abstract_interp/map_lattice.mli
+++ b/src/kernel_services/abstract_interp/map_lattice.mli
@@ -172,8 +172,8 @@ module Make_Map_Lattice
         keys, indicating whether a key represents a summary of possibly multiple
         keys; a binding to such a key has never a cardinality of one. *)
     module With_Cardinality
-        (K: sig val is_summary: Key.t -> bool end)
-        (Value :
+        (_: sig val is_summary: Key.t -> bool end)
+        (_:
            Lattice_type.Full_AI_Lattice_with_cardinality with type t := Value.t)
       : Map_Lattice_with_cardinality with type t := t
                                       and type key := key
@@ -198,9 +198,9 @@ module Make_MapSet_Lattice
                             and type v := Value.t
 
     module With_Cardinality
-        (KVMap : Map_Lattice_with_cardinality with type t := KVMap.t
-                                               and type key := Key.t
-                                               and type v := Value.t)
+        (_ : Map_Lattice_with_cardinality with type t := KVMap.t
+                                           and type key := Key.t
+                                           and type v := Value.t)
       : MapSet_Lattice_with_cardinality with type t := t
                                          and type key := Key.t
                                          and type v := Value.t
diff --git a/src/kernel_services/abstract_interp/offsetmap_sig.ml b/src/kernel_services/abstract_interp/offsetmap_sig.ml
index e1aff75607b0f7998b6cdb21eb850cdbeb4f01de..70834f81755f713f1cd083b5d226720fd8829499 100644
--- a/src/kernel_services/abstract_interp/offsetmap_sig.ml
+++ b/src/kernel_services/abstract_interp/offsetmap_sig.ml
@@ -160,7 +160,7 @@ module type S = sig
 
   (** {2 Narrowing} *)
 
-  module Make_Narrow (X: sig
+  module Make_Narrow (_: sig
       include Lattice_type.With_Top with type t := v
       include Lattice_type.With_Narrow with type t := v
     end) : sig
diff --git a/src/kernel_services/analysis/dataflow2.mli b/src/kernel_services/analysis/dataflow2.mli
index b74e55b8604e8502af361d7065ece648dcc2b142..c8bada2cdbd0e66193f431d9720d129a2917febc 100644
--- a/src/kernel_services/analysis/dataflow2.mli
+++ b/src/kernel_services/analysis/dataflow2.mli
@@ -135,7 +135,7 @@ module type ForwardsTransfer = sig
 
 end
 
-module Forwards(T : ForwardsTransfer) : sig
+module Forwards(_ : ForwardsTransfer) : sig
   val compute: Cil_types.stmt list -> unit
   (** Fill in the T.stmtStartData, given a number of initial statements to
       start from. All of the initial statements must have some entry in
@@ -210,7 +210,7 @@ module type BackwardsTransfer = sig
 
 end
 
-module Backwards(T : BackwardsTransfer) : sig
+module Backwards(_ : BackwardsTransfer) : sig
   val compute: Cil_types.stmt list -> unit
   (** Fill in the T.stmtStartData, given a number of initial statements to start
       from (the sinks for the backwards data flow). All of the statements (not
diff --git a/src/kernel_services/analysis/dataflows.mli b/src/kernel_services/analysis/dataflows.mli
index e96672e84c2ab130a76ecbe36fe043a3659bdd94..438d16c03b7edb9bd75d39b7d9995cdb4e434c31 100644
--- a/src/kernel_services/analysis/dataflows.mli
+++ b/src/kernel_services/analysis/dataflows.mli
@@ -118,7 +118,7 @@ module type BACKWARD_MONOTONE_PARAMETER = sig
   val init: (stmt * t) list
 end
 
-module Simple_backward(Fenv:FUNCTION_ENV)(P:BACKWARD_MONOTONE_PARAMETER) : sig
+module Simple_backward(_:FUNCTION_ENV)(P:BACKWARD_MONOTONE_PARAMETER) : sig
 
   (** {3 Retrieving the state before and after a statement.} *)
 
@@ -177,7 +177,7 @@ module type FORWARD_MONOTONE_PARAMETER = sig
 end
 
 
-module Simple_forward(Fenv:FUNCTION_ENV)(P:FORWARD_MONOTONE_PARAMETER) : sig
+module Simple_forward(_:FUNCTION_ENV)(P:FORWARD_MONOTONE_PARAMETER) : sig
 
   (** {3 Retrieve the state before and after a statement.} *)
 
diff --git a/src/kernel_services/ast_data/kernel_function.mli b/src/kernel_services/ast_data/kernel_function.mli
index ef8d9447bb247dbed4a547211dd71642c473714c..49a00d082eeaacd16b101bd03bbfe85c593a3626 100644
--- a/src/kernel_services/ast_data/kernel_function.mli
+++ b/src/kernel_services/ast_data/kernel_function.mli
@@ -293,7 +293,7 @@ val get_called : exp -> t option
 
 (** Hashtable indexed by kernel functions and dealing with project.
     @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> Plug-in Development Guide *)
-module Make_Table(Data: Datatype.S)(Info: State_builder.Info_with_size):
+module Make_Table(Data: Datatype.S)(_: State_builder.Info_with_size):
   State_builder.Hashtbl with type key = t and type data = Data.t
 
 (** Set of kernel functions. *)
diff --git a/src/kernel_services/ast_printing/printer_api.ml b/src/kernel_services/ast_printing/printer_api.ml
index 3dabf90e2ddf04f36261001d804ca8500d777284..4578370ef0676406c3f86afeaa5566a5cce6631f 100644
--- a/src/kernel_services/ast_printing/printer_api.ml
+++ b/src/kernel_services/ast_printing/printer_api.ml
@@ -532,7 +532,7 @@ module type S = sig
   (** Signature for extending an existing pretty-printer. OCaml forbids
       inheriting from a class received as argument, so we use a functor
       instead. *)
-  module type PrinterExtension = functor (X: PrinterClass) -> PrinterClass
+  module type PrinterExtension = functor (_: PrinterClass) -> PrinterClass
 
   val update_printer: (module PrinterExtension) -> unit
   (** Register a pretty-printer extension. The pretty-printer passed as
diff --git a/src/kernel_services/ast_printing/printer_builder.ml b/src/kernel_services/ast_printing/printer_builder.ml
index 7eca5d41378ab011942043c7d16e9c64f590a700..7a2dda14c7cfc896bd9334f0a69d4645338eaafc 100644
--- a/src/kernel_services/ast_printing/printer_builder.ml
+++ b/src/kernel_services/ast_printing/printer_builder.ml
@@ -111,7 +111,7 @@ struct
 
   let printer_ref = ref None
 
-  module type PrinterExtension = functor (X: PrinterClass) -> PrinterClass
+  module type PrinterExtension = functor (_: PrinterClass) -> PrinterClass
 
   let set_printer p =
     printer_class_ref := p;
diff --git a/src/kernel_services/ast_printing/printer_builder.mli b/src/kernel_services/ast_printing/printer_builder.mli
index 7310b8d3adcfcdbddaa939ddd748ec2a2f445b60..9a817d00604b8e118cef89907d486b992f54e64d 100644
--- a/src/kernel_services/ast_printing/printer_builder.mli
+++ b/src/kernel_services/ast_printing/printer_builder.mli
@@ -24,14 +24,14 @@
     object obtained by (P()) *)
 
 module Make_pp
-    (P: sig val printer: unit -> Printer_api.extensible_printer_type end):
+    (_: sig val printer: unit -> Printer_api.extensible_printer_type end):
   Printer_api.S_pp
 
 (** Build a full pretty-printer from a pretty-printing class.
     @since Fluorine-20130401 *)
 
 module Make
-    (P: sig class printer: unit -> Printer_api.extensible_printer_type end):
+    (_: sig class printer: unit -> Printer_api.extensible_printer_type end):
   Printer_api.S
 
 (*
diff --git a/src/kernel_services/ast_printing/printer_tag.mli b/src/kernel_services/ast_printing/printer_tag.mli
index 741b922ff24653872f973426b4214070076868d2..0171b029d99e97ec18301802b904461a4473181e 100644
--- a/src/kernel_services/ast_printing/printer_tag.mli
+++ b/src/kernel_services/ast_printing/printer_tag.mli
@@ -90,6 +90,6 @@ sig
     (Format.formatter -> 'a -> unit)
 end
 
-module Make(T : Tag) : S_pp
+module Make(_ : Tag) : S_pp
 
 (* -------------------------------------------------------------------------- *)
diff --git a/src/kernel_services/ast_queries/cil_state_builder.mli b/src/kernel_services/ast_queries/cil_state_builder.mli
index 0c61506c8625b86c904e5c4f5a3cd82e73e8b802..cafc3bdc85d74ced6be8f68cae7ab53cab21d5f0 100644
--- a/src/kernel_services/ast_queries/cil_state_builder.mli
+++ b/src/kernel_services/ast_queries/cil_state_builder.mli
@@ -23,30 +23,30 @@
 (** Functors for building computations which use kernel datatypes.
     @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> Plug-in Development Guide *)
 
-module Stmt_set_ref(Info: State_builder.Info) :
+module Stmt_set_ref(_: State_builder.Info) :
   State_builder.Set_ref with type elt = Cil_types.stmt
 
-module Kinstr_hashtbl(Data:Datatype.S)(Info: State_builder.Info_with_size) :
+module Kinstr_hashtbl(Data:Datatype.S)(_: State_builder.Info_with_size) :
   State_builder.Hashtbl with type key = Cil_types.kinstr and type data = Data.t
 
 (** @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> Plug-in Development Guide *)
-module Stmt_hashtbl(Data:Datatype.S)(Info: State_builder.Info_with_size) :
+module Stmt_hashtbl(Data:Datatype.S)(_: State_builder.Info_with_size) :
   State_builder.Hashtbl with type key = Cil_types.stmt and type data = Data.t
 
-module Varinfo_hashtbl(Data:Datatype.S)(Info: State_builder.Info_with_size) :
+module Varinfo_hashtbl(Data:Datatype.S)(_: State_builder.Info_with_size) :
   State_builder.Hashtbl with type key = Cil_types.varinfo
                          and type data = Data.t
 
-module Exp_hashtbl(Data:Datatype.S)(Info: State_builder.Info_with_size) :
+module Exp_hashtbl(Data:Datatype.S)(_: State_builder.Info_with_size) :
   State_builder.Hashtbl with type key = Cil_types.exp
                          and type data = Data.t
 
-module Lval_hashtbl(Data:Datatype.S)(Info: State_builder.Info_with_size) :
+module Lval_hashtbl(Data:Datatype.S)(_: State_builder.Info_with_size) :
   State_builder.Hashtbl with type key = Cil_types.lval
                          and type data = Data.t
 
 module Kernel_function_hashtbl
-    (Data:Datatype.S)(Info: State_builder.Info_with_size):
+    (Data:Datatype.S)(_: State_builder.Info_with_size):
   State_builder.Hashtbl with type key = Cil_types.kernel_function
                          and type data = Data.t
 
diff --git a/src/kernel_services/ast_queries/logic_typing.mli b/src/kernel_services/ast_queries/logic_typing.mli
index f9f671cb80244851652504b355a6e099fe1e218a..9f4653e1d6d5e5c3696a2281c50cad012df28d2d 100644
--- a/src/kernel_services/ast_queries/logic_typing.mli
+++ b/src/kernel_services/ast_queries/logic_typing.mli
@@ -219,7 +219,7 @@ sig
 end
 
 module Make
-    (C :
+    (_ :
      sig
        val is_loop: unit -> bool
        (** whether the annotation we want to type is contained in a loop.
diff --git a/src/kernel_services/cmdline_parameters/parameter_builder.mli b/src/kernel_services/cmdline_parameters/parameter_builder.mli
index eb5e2c968f0b30131e7cd5d63d5bac965760f04b..7e0e933bd266ff2adeaf3711c9c59193cbab88ef 100644
--- a/src/kernel_services/cmdline_parameters/parameter_builder.mli
+++ b/src/kernel_services/cmdline_parameters/parameter_builder.mli
@@ -27,7 +27,7 @@
 (* ************************************************************************* *)
 
 module Make
-    (P: sig
+    (_: sig
        val shortname: string
        val parameters: (string, Typed_parameter.t list) Hashtbl.t
        module L: sig
diff --git a/src/kernel_services/cmdline_parameters/parameter_sig.ml b/src/kernel_services/cmdline_parameters/parameter_sig.ml
index 31d72fe5961b6a2ffcfe45da400988435056e824..7b27f9a778ae3bd009c9034277491e780aabe6f3 100644
--- a/src/kernel_services/cmdline_parameters/parameter_sig.ml
+++ b/src/kernel_services/cmdline_parameters/parameter_sig.ml
@@ -523,34 +523,34 @@ module type Builder = sig
       @since Sodium-20150201
   *)
 
-  module Bool(X:sig include Input val default: bool end): Bool
-  module Action(X: Input) : Bool
+  module Bool(_:sig include Input val default: bool end): Bool
+  module Action(_: Input) : Bool
 
   (** @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> Plug-in Development Guide *)
-  module False(X: Input) : Bool
+  module False(_: Input) : Bool
 
   (** @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> Plug-in Development Guide *)
-  module True(X: Input) : Bool
+  module True(_: Input) : Bool
 
   module WithOutput
-      (X: sig include Input val output_by_default: bool end):
+      (_: sig include Input val output_by_default: bool end):
     With_output
 
   (** @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> Plug-in Development Guide *)
-  module Int(X: sig include Input_with_arg val default: int end): Int
+  module Int(_: sig include Input_with_arg val default: int end): Int
 
   (** @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> Plug-in Development Guide *)
-  module Zero(X: Input_with_arg): Int
+  module Zero(_: Input_with_arg): Int
 
   (** @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> Plug-in Development Guide *)
-  module String(X: sig include Input_with_arg val default: string end): String
+  module String(_: sig include Input_with_arg val default: string end): String
 
   (** @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> Plug-in Development Guide *)
-  module Empty_string(X: Input_with_arg): String
+  module Empty_string(_: Input_with_arg): String
 
   module Fc_Filepath = Filepath
 
-  module Filepath(X: sig
+  module Filepath(_: sig
       include Input_with_arg
       val existence: Filepath.existence
       val file_kind: string
@@ -565,21 +565,21 @@ module type Builder = sig
          include String_datatype_with_collections
          val of_singleton_string: string -> Set.t
        end)
-      (X: sig include Input_collection val default: E.Set.t end):
+      (_: sig include Input_collection val default: E.Set.t end):
     Set with type elt = E.t and type t = E.Set.t
 
   (** @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> Plug-in Development Guide *)
-  module String_set(X: Input_with_arg): String_set
+  module String_set(_: Input_with_arg): String_set
 
   module Filled_string_set
-      (X: sig
+      (_: sig
          include Input_with_arg
          val default: Datatype.String.Set.t
        end): String_set
 
   (** @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> Plug-in Development Guide *)
-  module Kernel_function_set(X: Input_with_arg): Kernel_function_set
-  module Fundec_set(X: Input_with_arg): Fundec_set
+  module Kernel_function_set(_: Input_with_arg): Kernel_function_set
+  module Fundec_set(_: Input_with_arg): Fundec_set
 
   module Make_list
       (E:
@@ -587,13 +587,13 @@ module type Builder = sig
          include String_datatype
          val of_singleton_string: string -> t list
        end)
-      (X: sig include Input_collection val default: E.t list end):
+      (_: sig include Input_collection val default: E.t list end):
     List with type elt = E.t and type t = E.t list
 
-  module String_list(X: Input_with_arg): String_list
+  module String_list(_: Input_with_arg): String_list
 
   module Filepath_list
-      (X: sig
+      (_: sig
          include Input_with_arg
          val existence: Fc_Filepath.existence
          val file_kind: string
@@ -602,7 +602,7 @@ module type Builder = sig
 
   module Filepath_map
       (V: Value_datatype with type key = Fc_Filepath.Normalized.t)
-      (X: sig
+      (_: sig
          include Input_with_arg
          val default: V.t Datatype.Filepath.Map.t
          val existence: Fc_Filepath.existence
@@ -617,13 +617,13 @@ module type Builder = sig
   module Make_map
       (K: String_datatype_with_collections)
       (V: Value_datatype with type key = K.t)
-      (X: sig include Input_collection val default: V.t K.Map.t end):
+      (_: sig include Input_collection val default: V.t K.Map.t end):
     Map
     with type key = K.t and type value = V.t and type t = V.t K.Map.t
 
   module String_map
       (V: Value_datatype with type key = string)
-      (X: sig include Input_with_arg val default: V.t Datatype.String.Map.t end):
+      (_: sig include Input_with_arg val default: V.t Datatype.String.Map.t end):
     Map
     with type key = string
      and type value = V.t
@@ -634,7 +634,7 @@ module type Builder = sig
       pure prototypes. *)
   module Kernel_function_map
       (V: Value_datatype with type key = Cil_types.kernel_function)
-      (X: sig include Input_with_arg val default: V.t Cil_datatype.Kf.Map.t end):
+      (_: sig include Input_with_arg val default: V.t Cil_datatype.Kf.Map.t end):
     Map
     with type key = Cil_types.kernel_function
      and type value = V.t
@@ -644,13 +644,13 @@ module type Builder = sig
   module Make_multiple_map
       (K: String_datatype_with_collections)
       (V: Multiple_value_datatype with type key = K.t)
-      (X: sig include Input_collection val default: V.t list K.Map.t end):
+      (_: sig include Input_collection val default: V.t list K.Map.t end):
     Multiple_map
     with type key = K.t and type value = V.t and type t = V.t list K.Map.t
 
   module String_multiple_map
       (V: Multiple_value_datatype with type key = string)
-      (X: sig
+      (_: sig
          include Input_with_arg
          val default: V.t list Datatype.String.Map.t
        end):
@@ -664,7 +664,7 @@ module type Builder = sig
       pure prototypes. *)
   module Kernel_function_multiple_map
       (V: Multiple_value_datatype with type key = Cil_types.kernel_function)
-      (X: sig
+      (_: sig
          include Input_with_arg
          val default: V.t list Cil_datatype.Kf.Map.t
        end):
diff --git a/src/kernel_services/cmdline_parameters/parameter_state.mli b/src/kernel_services/cmdline_parameters/parameter_state.mli
index f4bdcfa8effbd6e4d3e51aa6232cfd6184e7d642..fd87b9deeb9ee27b7d05cf1cd63bd10d18d88a50 100644
--- a/src/kernel_services/cmdline_parameters/parameter_state.mli
+++ b/src/kernel_services/cmdline_parameters/parameter_state.mli
@@ -47,7 +47,7 @@ val get_reset_selection: ?is_set:bool -> unit -> State_selection.t
 (* ************************************************************************* *)
 
 module Make
-    (P: sig val shortname: string end)
+    (_: sig val shortname: string end)
     (X:sig
        include Datatype.S
        val default: unit -> t
diff --git a/src/kernel_services/plugin_entry_points/emitter.mli b/src/kernel_services/plugin_entry_points/emitter.mli
index 6215281eb6f1e14ce0421fad747cb59d70e90352..afe5b5767f6be59dc801b927a3e74bd9cbb42e38 100644
--- a/src/kernel_services/plugin_entry_points/emitter.mli
+++ b/src/kernel_services/plugin_entry_points/emitter.mli
@@ -127,7 +127,7 @@ module Make_table
        val get: t -> emitter
      end)
     (D: Datatype.S)
-    (Info: sig include State_builder.Info_with_size val kinds: kind list end) :
+    (_: sig include State_builder.Info_with_size val kinds: kind list end) :
 sig
   type internal_tbl = D.t E.Hashtbl.t
   val self: State.t
diff --git a/src/kernel_services/plugin_entry_points/kernel.mli b/src/kernel_services/plugin_entry_points/kernel.mli
index fec09bc71b5a023d9db139d8250e1519c2d1e772..624898fa1cb79edb552ebbe18fe63cee83364615 100644
--- a/src/kernel_services/plugin_entry_points/kernel.mli
+++ b/src/kernel_services/plugin_entry_points/kernel.mli
@@ -228,7 +228,7 @@ module type Input_with_arg = sig
   val module_name: string
 end
 
-module Kernel_function_set(X:Input_with_arg): Parameter_sig.Kernel_function_set
+module Kernel_function_set(_:Input_with_arg): Parameter_sig.Kernel_function_set
 
 (* ************************************************************************* *)
 (** {2 Option groups} *)
diff --git a/src/kernel_services/plugin_entry_points/log.mli b/src/kernel_services/plugin_entry_points/log.mli
index a3c6d693e3fb2e1cde6c22759c09456705e8e11f..2f006e98e40d9f376f675f4b1c9c988fa69367f8 100644
--- a/src/kernel_services/plugin_entry_points/log.mli
+++ b/src/kernel_services/plugin_entry_points/log.mli
@@ -380,7 +380,7 @@ val is_subcategory : string list -> string list -> bool
     They should apply {!Plugin.Register} instead.
     @since Beryllium-20090601-beta1 *)
 module Register
-    (P : sig
+    (_ : sig
        val channel : string
        val label : string
        val verbose_atleast : int -> bool
diff --git a/src/kernel_services/plugin_entry_points/plugin.mli b/src/kernel_services/plugin_entry_points/plugin.mli
index 75c75aa1ae7280d74a2a527901db0140dbe70307..cf1aac9575fb466a1444ff4f0f001511e300c29a 100644
--- a/src/kernel_services/plugin_entry_points/plugin.mli
+++ b/src/kernel_services/plugin_entry_points/plugin.mli
@@ -109,7 +109,7 @@ val register_kernel: unit -> unit
     services.
     @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> Plug-in Development Guide *)
 module Register
-    (P: sig
+    (_: sig
        val name: string
        (** Name of the module. Arbitrary non-empty string. *)
 
diff --git a/src/libraries/datatype/datatype.mli b/src/libraries/datatype/datatype.mli
index 39e4baadec51035688238e414ffa8fe726f99f87..54bbb2ec476ef53f16a3e008e02b01c9b387169d 100644
--- a/src/libraries/datatype/datatype.mli
+++ b/src/libraries/datatype/datatype.mli
@@ -290,7 +290,7 @@ module Make_with_collections(X: Make_input):
 (** Add sets, maps and hashtables modules to an existing datatype, provided the
     [equal], [compare] and [hash] functions are not {!undefined}.
     @since Oxygen-20120901 *)
-module With_collections(X: S)(Info: Functor_info):
+module With_collections(X: S)(_: Functor_info):
   S_with_collections with type t = X.t
 
 (* ****************************************************************************)
@@ -508,7 +508,7 @@ module Poly_pair: Polymorphic2 with type ('a, 'b) poly = 'a * 'b
 
 (** @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> Plug-in Development Guide *)
 module Pair(T1: S)(T2: S): S with type t = T1.t * T2.t
-module Pair_with_collections(T1: S)(T2: S)(Info: Functor_info):
+module Pair_with_collections(T1: S)(T2: S)(_: Functor_info):
   S_with_collections with type t = T1.t * T2.t
 val pair: 'a Type.t -> 'b Type.t -> ('a * 'b) Type.t
 
@@ -522,7 +522,7 @@ module Poly_option: Polymorphic with type 'a poly = 'a option
 module Option(T: S) : S with type t = T.t option
 
 (** @since Nitrogen-20111001 *)
-module Option_with_collections(T:S)(Info: Functor_info):
+module Option_with_collections(T:S)(_: Functor_info):
   S_with_collections with type t = T.t option
 
 val option: 'a Type.t -> 'a option Type.t
@@ -532,7 +532,7 @@ module Poly_list: Polymorphic with type 'a poly = 'a list
 (** @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> Plug-in Development Guide *)
 module List(T: S) : S with type t = T.t list
 
-module List_with_collections(T:S)(Info:Functor_info):
+module List_with_collections(T:S)(_:Functor_info):
   S_with_collections with type t = T.t list
 (** @since Fluorine-20130401 *)
 
@@ -545,7 +545,7 @@ module Poly_array: Polymorphic with type 'a poly = 'a array
 module Array(T: S) : S with type t = T.t array
 (** @since Neon-20140301 *)
 
-module Array_with_collections(T:S)(Info:Functor_info):
+module Array_with_collections(T:S)(_:Functor_info):
   S_with_collections with type t = T.t array
 (** @since Neon-20140301 *)
 
@@ -561,7 +561,7 @@ module Triple(T1: S)(T2: S)(T3: S): S with type t = T1.t * T2.t * T3.t
 val triple: 'a Type.t -> 'b Type.t -> 'c Type.t -> ('a * 'b * 'c) Type.t
 (** @since Fluorine-20130401 *)
 
-module Triple_with_collections(T1: S)(T2: S)(T3: S)(Info: Functor_info):
+module Triple_with_collections(T1: S)(T2: S)(T3: S)(_: Functor_info):
   S_with_collections with type t = T1.t * T2.t * T3.t
 
 (** @since Nitrogen-20111001 *)
@@ -573,7 +573,7 @@ val quadruple:
 
 (** @since Nitrogen-20111001 *)
 module Quadruple_with_collections
-    (T1: S)(T2: S)(T3: S)(T4:S)(Info: Functor_info):
+    (T1: S)(T2: S)(T3: S)(T4:S)(_: Functor_info):
   S_with_collections with type t = T1.t * T2.t * T3.t * T4.t
 
 (** @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> Plug-in Development Guide *)
@@ -617,15 +617,15 @@ val func4:
   ('a -> 'b -> 'c -> 'd -> 'e) Type.t
 
 module Set
-    (S: Set.S)(E: S with type t = S.elt)(Info : Functor_info):
+    (S: Set.S)(E: S with type t = S.elt)(_ : Functor_info):
   Set with type t = S.t and type elt = E.t
 
 module Map
-    (M: Map.S)(Key: S with type t = M.key)(Info: Functor_info) :
+    (M: Map.S)(Key: S with type t = M.key)(_: Functor_info) :
   Map with type 'a t = 'a M.t and type key = M.key and module Key = Key
 
 module Hashtbl
-    (H: Hashtbl_with_descr)(Key: S with type t = H.key)(Info : Functor_info):
+    (H: Hashtbl_with_descr)(Key: S with type t = H.key)(_: Functor_info):
   Hashtbl with type 'a t = 'a H.t and type key = H.key and module Key = Key
 
 module type Sub_caml_weak_hashtbl = sig
@@ -640,7 +640,7 @@ module Caml_weak_hashtbl(D: S): sig
   module Datatype: S with type t = t
 end
 
-module Weak(W: Sub_caml_weak_hashtbl)(D: S with type t = W.data) :
+module Weak(W: Sub_caml_weak_hashtbl)(_: S with type t = W.data) :
   S with type t = W.t
 
 (*
diff --git a/src/libraries/datatype/type.mli b/src/libraries/datatype/type.mli
index 554739c80b57e1b5add9b38082468497b335ab47..18b02aa6d97f1ecf1aa34b2a5af3606bd71d6a8d 100644
--- a/src/libraries/datatype/type.mli
+++ b/src/libraries/datatype/type.mli
@@ -108,7 +108,7 @@ exception No_abstract_type of string
     @raise No_abstract_type if no such abstract type was registered.
     @since Nitrogen-20111001
     @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> Plug-in Development Guide *)
-module Abstract(T: sig val name: string end): sig
+module Abstract(_: sig val name: string end): sig
   type t
   val ty: t ty
 end
diff --git a/src/libraries/project/project_skeleton.mli b/src/libraries/project/project_skeleton.mli
index ddd012828a1426f512bd072a6d213ca0ee23629a..0203ec3fb007e654a66c2c543af63e666e284221 100644
--- a/src/libraries/project/project_skeleton.mli
+++ b/src/libraries/project/project_skeleton.mli
@@ -54,7 +54,7 @@ val dummy: t
 (** @since Carbon-20101201 *)
 
 (** @since Carbon-20101201 *)
-module Make_setter(X: sig val mem: string -> bool end) : sig
+module Make_setter(_: sig val mem: string -> bool end) : sig
 
   val make_unique_name: string -> string
   (** @return a fresh name from the given string according to [X.mem].
diff --git a/src/libraries/project/state_builder.ml b/src/libraries/project/state_builder.ml
index a65f82560e349fd7979a1cba0a505e44f2ec960a..ec3da06c000d094118f4b4366bca117e388c2d45 100644
--- a/src/libraries/project/state_builder.ml
+++ b/src/libraries/project/state_builder.ml
@@ -801,7 +801,7 @@ module type Hashconsing_tbl =
        val hash_internal: t -> int
        val initial_values: t list
      end) ->
-  functor (Info: Info_with_size) ->
+  functor (_: Info_with_size) ->
     Weak_hashtbl with type data = Data.t
 
 module Hashconsing_tbl =
diff --git a/src/libraries/project/state_builder.mli b/src/libraries/project/state_builder.mli
index edf54150e1d077b84a7fccddf386d7962946301a..e3abcf1f38a5b81abb9142bba7a888265fd8c3be 100644
--- a/src/libraries/project/state_builder.mli
+++ b/src/libraries/project/state_builder.mli
@@ -81,15 +81,15 @@ module type S = sig
 
 end
 
-(** [Register(Datatype)(State)(Info)] registers a new state.
+(** [Register(Datatype)(Local_state)(Info)] registers a new state.
     [Datatype] represents the datatype of a state, [Local_state]
     explains how to deal with the client-side state and [Info] are additional
     required information.
     @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> Plug-in Development Guide *)
 module Register
     (Datatype: Datatype.S)
-    (Local_state: State.Local with type t = Datatype.t)
-    (Info: sig include Info val unique_name: string end)
+    (_: State.Local with type t = Datatype.t)
+    (_: sig include Info val unique_name: string end)
   : S with module Datatype = Datatype
 
 (* ************************************************************************* *)
@@ -127,7 +127,7 @@ end
 (** @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> Plug-in Development Guide *)
 module Ref
     (Data:Datatype.S)
-    (Info:sig
+    (_:sig
        include Info
        val default: unit -> Data.t
      end)
@@ -156,7 +156,7 @@ module type Option_ref = sig
 end
 
 (** Build a reference on an option. *)
-module Option_ref(Data:Datatype.S)(Info: Info) :
+module Option_ref(Data:Datatype.S)(_: Info) :
   Option_ref with type data = Data.t
 
 (** Output signature of [ListRef].
@@ -173,34 +173,34 @@ end
 
 (** Build a reference on a list.
     @since Boron-20100401 *)
-module List_ref(Data:Datatype.S)(Info: Info) :
+module List_ref(Data:Datatype.S)(_: Info) :
   List_ref with type data = Data.t list and type data_in_list = Data.t
 
 (** Build a reference on an integer.
     @since Carbon-20101201 *)
-module Int_ref(Info:sig include Info val default: unit -> int end) :
+module Int_ref(_:sig include Info val default: unit -> int end) :
   Ref with type data = int
 
 (** Build a reference on an integer, initialized with [0].
     @since Carbon-20101201 *)
-module Zero_ref(Info:Info) : Ref with type data = int
+module Zero_ref(_:Info) : Ref with type data = int
 
 (** Build a reference on a boolean.
     @since Oxygen-20120901 *)
-module Bool_ref(Info:sig include Info val default: unit -> bool end) :
+module Bool_ref(_:sig include Info val default: unit -> bool end) :
   Ref with type data = bool
 
 (** Build a reference on a boolean, initialized with [false].
     @since Carbon-20101201 *)
-module False_ref(Info:Info): Ref with type data = bool
+module False_ref(_:Info): Ref with type data = bool
 
 (** Build a reference on a boolean, initialized with [true].
     @since Carbon-20101201 *)
-module True_ref(Info:Info): Ref with type data = bool
+module True_ref(_:Info): Ref with type data = bool
 
 (** Build a reference on a float.
     @since Oxygen-20120901 *)
-module Float_ref(Info:sig include Info val default: unit -> float end) :
+module Float_ref(_:sig include Info val default: unit -> float end) :
   Ref with type data = float
 
 (* ************************************************************************* *)
@@ -269,13 +269,13 @@ end
     [W].
     @since Boron-20100401 *)
 module Weak_hashtbl
-    (W: Weak.S)(Data: Datatype.S with type t = W.data)(Info: Info_with_size) :
+    (W: Weak.S)(_: Datatype.S with type t = W.data)(_: Info_with_size) :
   Weak_hashtbl with type data = W.data
 
 (** Build a weak hashtbl over a datatype [Data] by using [Weak.Make] provided
     by the OCaml standard library. Note that the table is not saved on disk.
     @since Boron-20100401 *)
-module Caml_weak_hashtbl(Data: Datatype.S)(Info: Info_with_size) :
+module Caml_weak_hashtbl(Data: Datatype.S)(_: Info_with_size) :
   Weak_hashtbl with type data = Data.t
 
 (** Signature for the creation of projectified hashconsing tables..
@@ -296,7 +296,7 @@ module type Hashconsing_tbl =
        (** Pre-existing values stored in the built table and shared by all
            existing projects. *)
      end) ->
-  functor (Info: Info_with_size) ->
+  functor (_: Info_with_size) ->
     Weak_hashtbl with type data = Data.t
 
 (** Weak hashtbl dedicated to hashconsing.
@@ -398,11 +398,11 @@ end
 module Hashtbl
     (H: Datatype.Hashtbl)
     (Data: Datatype.S)
-    (Info: Info_with_size) :
+    (_: Info_with_size) :
   Hashtbl with type key = H.key and type data = Data.t
                                 and module Datatype = H.Make(Data)
 
-module Int_hashtbl(Data: Datatype.S)(Info:Info_with_size):
+module Int_hashtbl(Data: Datatype.S)(_:Info_with_size):
   Hashtbl with type key = int and type data = Data.t
 
 (* ************************************************************************* *)
@@ -423,7 +423,7 @@ module type Set_ref = sig
   val iter: (elt -> unit) -> unit
 end
 
-module Set_ref(S: Datatype.Set)(Info: Info)
+module Set_ref(S: Datatype.Set)(_: Info)
   : Set_ref with type elt = S.elt and type data = S.t
 
 (* ************************************************************************* *)
@@ -440,7 +440,7 @@ module type Queue = sig
   val length: unit -> int
 end
 
-module Queue(Data: Datatype.S)(Info: Info) : Queue with type elt = Data.t
+module Queue(Data: Datatype.S)(_: Info) : Queue with type elt = Data.t
 
 (* ************************************************************************* *)
 (** {3 Array} *)
@@ -459,7 +459,7 @@ module type Array = sig
   val fold_right:  (elt -> 'a -> 'a) -> 'a -> 'a
 end
 
-module Array(Data: Datatype.S)(Info: sig include Info val default: Data.t end) :
+module Array(Data: Datatype.S)(_: sig include Info val default: Data.t end) :
   Array with type elt = Data.t
 
 
@@ -515,12 +515,12 @@ end
 (** Creates a counter that is shared among all projects, but which is
     marshalling-compliant.
     @since Carbon-20101201 *)
-module SharedCounter(Info : sig val name : string end) : Counter
+module SharedCounter(_ : sig val name : string end) : Counter
 
 (** Creates a projectified counter. That starts at 0
 
     @since Nitrogen-20111001 *)
-module Counter(Info : sig val name : string end) : Counter
+module Counter(_ : sig val name : string end) : Counter
 
 
 (* ****************************************************************************)
@@ -549,7 +549,7 @@ end
 (** Hashconsed version of an arbitrary datatype *)
 module Hashcons
     (Data: Datatype.S)
-    (Info: sig
+    (_: sig
        include Info
        val initial_values: Data.t list
        (** List of values created at compile-time, that must be shared between
diff --git a/src/libraries/project/state_dependency_graph.mli b/src/libraries/project/state_dependency_graph.mli
index fa258878b836e90e9eb9a0e990f93394d14d4de9..46b9c0c99fcaf764e041925db153606e1a83bc63 100644
--- a/src/libraries/project/state_dependency_graph.mli
+++ b/src/libraries/project/state_dependency_graph.mli
@@ -71,7 +71,7 @@ include S
 val add_state: State.t -> State.t list -> unit
 
 module Attributes: Attributes
-module Dot(A: Attributes) : sig val dump: string -> unit end
+module Dot(_: Attributes) : sig val dump: string -> unit end
 val dump: string -> unit
 
 (*
diff --git a/src/libraries/qed/dune-project b/src/libraries/qed/dune-project
index 30de89263ca7599c77503f0691f5336e1f267449..d558f53e159d5b31ff821247a32f2d319265d95b 100644
--- a/src/libraries/qed/dune-project
+++ b/src/libraries/qed/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/libraries/qed/partition.mli b/src/libraries/qed/partition.mli
index 6329def9eed7e4016aec500e78a4f4cc4616e818..1f0ba435a24cae3eb1653f543a52b7d382226ab6 100644
--- a/src/libraries/qed/partition.mli
+++ b/src/libraries/qed/partition.mli
@@ -54,7 +54,7 @@ end
 
 module Make(E : Elt)
     (S : Set with type elt = E.t)
-    (M : Map with type key = E.t) :
+    (_ : Map with type key = E.t) :
 sig
   type t
   type elt = E.t
diff --git a/src/libraries/utils/hptmap.ml b/src/libraries/utils/hptmap.ml
index 04d64f4fbae2c351ec37449dbb1179535c1b3dba..462a08c1d08ea719373b93d71079834ee7c18218 100644
--- a/src/libraries/utils/hptmap.ml
+++ b/src/libraries/utils/hptmap.ml
@@ -587,16 +587,34 @@ module Shape(Key: Id_Datatype) = struct
       ~decide_fast ~decide_fst:decide_one ~decide_snd:decide_one ~decide_both
 end
 
+
+module type Compositional_bool = sig
+  type key
+  type v
+
+  val e : bool
+  val f : key -> v -> bool
+  val compose : bool -> bool -> bool
+end
+
+module type Initial_values = sig
+  type key
+  type v
+  val v : (key*v) list list
+end
+
+module type Datatype_deps = sig
+  val l : State.t list
+end
+
 module Make
     (Key: Id_Datatype)
     (V : V)
-    (Compositional_bool : sig
-       val e: bool
-       val f : Key.t -> V.t -> bool
-       val compose : bool -> bool -> bool
-     end)
-    (Initial_Values: sig val v : (Key.t * V.t) list list end)
-    (Datatype_deps: sig val l : State.t list end)
+    (Compositional_bool : Compositional_bool with type key := Key.t
+                                              and type v := V.t)
+    (Initial_Values: Initial_values with type key := Key.t
+                                     and type v := V.t)
+    (Datatype_deps: Datatype_deps)
 =
 struct
 
diff --git a/src/libraries/utils/hptmap.mli b/src/libraries/utils/hptmap.mli
index 3f00916041af9ec45a9f6c29c8dad15bf5d49d2e..18d2595e3773499bb04b944fbbd6ab823aa7dca0 100644
--- a/src/libraries/utils/hptmap.mli
+++ b/src/libraries/utils/hptmap.mli
@@ -45,38 +45,50 @@ module Shape (Key : Id_Datatype): sig
   type 'a t = 'a map
 end
 
+(** A boolean information is maintained for each tree, by composing the
+    boolean on the subtrees and the value information present on each leaf.
+    Use {!Comp_unused} for a default implementation. *)
+module type Compositional_bool = sig
+  type key
+  type v
+
+  val e : bool
+  (** Value for the empty tree *)
+
+  val f : key -> v -> bool
+  (** Value for a leaf *)
+
+  val compose : bool -> bool -> bool
+  (** Composition of the values of two subtrees *)
+end
+
+module type Initial_values = sig
+  type key
+  type v
+  val v : (key*v) list list
+  (** List of the maps that must be shared between all instances of Frama-C
+      (the maps being described by the list of their elements).
+      Must include all maps that are exported at Caml link-time when the
+      functor is applied. This usually includes at least the empty map, hence
+      [v] nearly always contains [[]]. *)
+end
+
+module type Datatype_deps = sig
+  val l : State.t list
+  (** Dependencies of the hash-consing table. The table will be cleared
+      whenever one of those dependencies is cleared. *)
+end
+
 (** This functor builds the complete module of maps indexed by keys [Key]
     to values [V]. *)
 module Make
     (Key : Id_Datatype)
     (V : V)
-    (Compositional_bool : sig
-       (** A boolean information is maintained for each tree, by composing the
-           boolean on the subtrees and the value information present on each leaf.
-           See {!Comp_unused} for a default implementation. *)
-
-       val e: bool
-       (** Value for the empty tree *)
-
-       val f : Key.t -> V.t -> bool
-       (** Value for a leaf *)
-
-       val compose : bool -> bool -> bool
-       (** Composition of the values of two subtrees *)
-     end)
-    (Initial_Values : sig
-       val v : (Key.t*V.t) list list
-       (** List of the maps that must be shared between all instances of Frama-C
-           (the maps being described by the list of their elements).
-           Must include all maps that are exported at Caml link-time when the
-           functor is applied. This usually includes at least the empty map, hence
-           [v] nearly always contains [[]]. *)
-     end)
-    (Datatype_deps: sig
-       val l : State.t list
-       (** Dependencies of the hash-consing table. The table will be cleared
-           whenever one of those dependencies is cleared. *)
-     end)
+    (_ : Compositional_bool with type key := Key.t
+                             and type v := V.t)
+    (_ : Initial_values with type key := Key.t
+                         and type v := V.t)
+    (_ : Datatype_deps)
   : Hptmap_sig.S with type key = Key.t
                   and type v = V.t
                   and type 'v map = 'v Shape(Key).map
diff --git a/src/libraries/utils/hptset.ml b/src/libraries/utils/hptset.ml
index 7b5afc07e03b2a0fe3ed95f5418febd4ecbaec52..11c615ef411e9de8a5a69cef7071a253a1b35361 100644
--- a/src/libraries/utils/hptset.ml
+++ b/src/libraries/utils/hptset.ml
@@ -92,9 +92,18 @@ module type S = sig
   val pretty_debug: t Pretty_utils.formatter
 end
 
+module type Initial_values = sig
+  type elt
+  val v : elt list list
+end
+
+module type Datatype_deps = sig
+  val l : State.t list
+end
+
 module Make(X: Hptmap.Id_Datatype)
-    (Initial_Values : sig val v : X.t list list end)
-    (Datatype_deps: sig val l : State.t list end) :   sig
+    (Initial_values : Initial_values with type elt := X.t)
+    (Datatype_deps : Datatype_deps) :   sig
   include S with type elt = X.t
              and type 'a map = 'a Hptmap.Shape(X).t
   val self : State.t
@@ -108,7 +117,7 @@ end
       (X)
       (struct include Datatype.Unit let pretty_debug = pretty end)
       (Hptmap.Comp_unused)
-      (struct let v = List.map (List.map (fun k -> k, ())) Initial_Values.v end)
+      (struct let v = List.map (List.map (fun k -> k, ())) Initial_values.v end)
       (Datatype_deps)
 
   include M
diff --git a/src/libraries/utils/hptset.mli b/src/libraries/utils/hptset.mli
index 0adc4b3ab6332dfa419ea25227bf61c4fac1e293..afa84ebd72c521c76024dfab235b4a772da4341a 100644
--- a/src/libraries/utils/hptset.mli
+++ b/src/libraries/utils/hptset.mli
@@ -105,9 +105,25 @@ module type S = sig
   val pretty_debug: t Pretty_utils.formatter
 end
 
+module type Initial_values = sig
+  type elt
+  val v : elt list list
+  (** List of the sets that must be shared between all instances of Frama-C
+      (the sets being described by the list of their elements).
+      Must include all sets that are exported at Caml link-time when the
+      functor is applied. This usually includes at least the empty set, hence
+      [v] nearly always contains [[]]. *)
+end
+
+module type Datatype_deps = sig
+  val l : State.t list
+  (** Dependencies of the hash-consing table. The table will be cleared
+      whenever one of those dependencies is cleared. *)
+end
+
 module Make(X: Hptmap.Id_Datatype)
-    (Initial_Values : sig val v : X.t list list end)
-    (Datatype_deps: sig val l : State.t list end) :
+    (_ : Initial_values with type elt := X.t)
+    (_ : Datatype_deps) :
 sig
   include S with type elt = X.t
              and type 'a map = 'a Hptmap.Shape(X).map
diff --git a/src/plugins/alias/dune-project b/src/plugins/alias/dune-project
index c934d313d775e41dbb3ccc769d0dba2d1439110a..5f564c9a812ab5705915a36ed1ce66fbc4eb42bf 100644
--- a/src/plugins/alias/dune-project
+++ b/src/plugins/alias/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/aorai/dune-project b/src/plugins/aorai/dune-project
index b3c8dfe21c8184a59b18344039a80dd56cf4b275..4e033be9ebe2e1f95e6305ec09a4c16217247c6e 100644
--- a/src/plugins/aorai/dune-project
+++ b/src/plugins/aorai/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Aorai plug-in of Frama-C.                        ;;
diff --git a/src/plugins/api-generator/dune-project b/src/plugins/api-generator/dune-project
index 06ff92bd6eb810f0ab4547194685b2d73facb196..de387c3ced328471da2eea45a964173ff1ce03ca 100644
--- a/src/plugins/api-generator/dune-project
+++ b/src/plugins/api-generator/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/callgraph/dune-project b/src/plugins/callgraph/dune-project
index 450a812f0f250f01e0b9992cdc97b0fd064bab1d..ecc401c852c23b0140e06580da6780f4b7e23c90 100644
--- a/src/plugins/callgraph/dune-project
+++ b/src/plugins/callgraph/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/callgraph/subgraph.mli b/src/plugins/callgraph/subgraph.mli
index d294b08e06757f979b5a7ce8685cd77a7016a80c..df485369741b41eb9310737bcba5789e3336bd2f 100644
--- a/src/plugins/callgraph/subgraph.mli
+++ b/src/plugins/callgraph/subgraph.mli
@@ -28,8 +28,8 @@ module Make
        val create: ?size:int -> unit -> t
        val add_edge_e: t -> E.t -> unit
      end)
-    (D: Datatype.S with type t = G.t(* Graph datatype *))
-    (Info: sig
+    (_: Datatype.S with type t = G.t(* Graph datatype *))
+    (_: sig
        (** additional information *)
        val self: State.t
        val name: string
diff --git a/src/plugins/constant_propagation/dune-project b/src/plugins/constant_propagation/dune-project
index 7c1de9ea27de6f846ac56174c02090a169af16df..802569e45b23d55dd6aa4df9ec4941ecdb1304d9 100644
--- a/src/plugins/constant_propagation/dune-project
+++ b/src/plugins/constant_propagation/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/dive/dune-project b/src/plugins/dive/dune-project
index 09cfd9cfc031c24d89fa15891155d93e3d4b536f..a3c9521d66212c728d8229c52504db13cb6ab55f 100644
--- a/src/plugins/dive/dune-project
+++ b/src/plugins/dive/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/e-acsl/dune-project b/src/plugins/e-acsl/dune-project
index 419df63232de76a63d932b7067ac1019eca33d65..c0b8fea74abbfc1b4e27492f93e8ce99ed9852f9 100644
--- a/src/plugins/e-acsl/dune-project
+++ b/src/plugins/e-acsl/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of the Frama-C's E-ACSL plug-in.                    ;;
diff --git a/src/plugins/e-acsl/src/libraries/error.mli b/src/plugins/e-acsl/src/libraries/error.mli
index 664c64088b858a76d9749495b6f9eea5ad9fb5fb..a48cf08b07ebba7deb21594dcd9dd4bcdb63e6c2 100644
--- a/src/plugins/e-acsl/src/libraries/error.mli
+++ b/src/plugins/e-acsl/src/libraries/error.mli
@@ -92,7 +92,7 @@ module type S = sig
 end
 
 (** Functor to build an [Error] module for a given [phase]. *)
-module Make(P: sig val phase:Options.category end): S
+module Make(_: sig val phase:Options.category end): S
 
 (** The [Error] module implements [Error.S] with no phase. *)
 include S
diff --git a/src/plugins/eva/domains/domain_builder.mli b/src/plugins/eva/domains/domain_builder.mli
index 66e384b62ac3697472b1ffb0497e3e1db135246e..2670a7e0b9e4d9a7169ff7cd8ed0dd114b61115e 100644
--- a/src/plugins/eva/domains/domain_builder.mli
+++ b/src/plugins/eva/domains/domain_builder.mli
@@ -102,6 +102,6 @@ module Complete_Simple_Cvalue
 module Restrict
     (Value: Abstract_value.S)
     (Domain: Abstract.Domain.Internal with type value = Value.t)
-    (Scope: sig val functions: Domain_mode.function_mode list end)
+    (_: sig val functions: Domain_mode.function_mode list end)
   : Abstract.Domain.Internal with type value = Value.t
                               and type location = Domain.location
diff --git a/src/plugins/eva/domains/multidim/abstract_structure.mli b/src/plugins/eva/domains/multidim/abstract_structure.mli
index e6b28c4cfc02798d14888b3ce80234c5eafec21e..d5bd39032aff27ccb977a62ab69917dcd0483c75 100644
--- a/src/plugins/eva/domains/multidim/abstract_structure.mli
+++ b/src/plugins/eva/domains/multidim/abstract_structure.mli
@@ -49,7 +49,7 @@ sig
   val map : (submemory -> submemory) -> t -> t
 end
 
-module Make (Config : Config) (M : ProtoMemory) :
+module Make (_ : Config) (M : ProtoMemory) :
   Structure with type submemory = M.t
 
 module type Disjunction =
diff --git a/src/plugins/eva/domains/multidim/segmentation.mli b/src/plugins/eva/domains/multidim/segmentation.mli
index b2a54ee79f9d2d4e552a6d832975a3cbe7e8c9ad..2d819c5b2d891636f6fe52b955cc04e458251c28 100644
--- a/src/plugins/eva/domains/multidim/segmentation.mli
+++ b/src/plugins/eva/domains/multidim/segmentation.mli
@@ -66,5 +66,5 @@ sig
   val add_segmentation_bounds : oracle:oracle -> bound list -> t -> t
 end
 
-module Make (Config : Config) (M : ProtoMemory) :
+module Make (_ : Config) (M : ProtoMemory) :
   Segmentation with type submemory = M.t
diff --git a/src/plugins/eva/domains/multidim/typed_memory.mli b/src/plugins/eva/domains/multidim/typed_memory.mli
index 530767995590b569cae6319086ae45279876dc60..bcdd9965a0d45c58ab5c3cecc5400bf78a74a57c 100644
--- a/src/plugins/eva/domains/multidim/typed_memory.mli
+++ b/src/plugins/eva/domains/multidim/typed_memory.mli
@@ -61,7 +61,7 @@ sig
   val join : t -> t -> t
 end
 
-module Make (Config : Config) (Value : Value) :
+module Make (_ : Config) (Value : Value) :
 sig
   type location = Abstract_offset.t
   type value = Value.t
diff --git a/src/plugins/eva/domains/simple_memory.mli b/src/plugins/eva/domains/simple_memory.mli
index f1e67e165a93e697710548ad9fb8058b9a670550..0519cf24b31ba77b4fa76d2e4ca69e996474ce43 100644
--- a/src/plugins/eva/domains/simple_memory.mli
+++ b/src/plugins/eva/domains/simple_memory.mli
@@ -81,7 +81,7 @@ module type S = sig
 end
 
 (* Builds a memory from a value abstraction. *)
-module Make_Memory (Info: sig val name: string end) (Value: Value) : sig
+module Make_Memory (_: sig val name: string end) (Value: Value) : sig
   include Datatype.S_with_collections
   include S with type t := t
              and type value := Value.t
@@ -97,7 +97,7 @@ end
 
 (* Builds a complete Eva domain from a value abstraction. *)
 module Make_Domain
-    (Info: sig val name: string end)
+    (_: sig val name: string end)
     (Value: Value)
   : sig
 
diff --git a/src/plugins/eva/dune-project b/src/plugins/eva/dune-project
index 2f4a65bccf3b27de50567234e0fa2dca2f8d65d9..580cbd8f7afbabbd5fe2793b09e81c6972ffb6c3 100644
--- a/src/plugins/eva/dune-project
+++ b/src/plugins/eva/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/eva/engine/initialization.mli b/src/plugins/eva/engine/initialization.mli
index e669a8df56c486c4751b7ac4bf798c12b02af7c2..0b69e2f44ab9af5ee30106c284a2861f4042a250 100644
--- a/src/plugins/eva/engine/initialization.mli
+++ b/src/plugins/eva/engine/initialization.mli
@@ -40,9 +40,9 @@ end
 
 module Make
     (Domain: Abstract.Domain.External)
-    (Eva: Evaluation_sig.S with type state = Domain.state
-                            and type loc = Domain.location)
-    (Transfer: Transfer_stmt.S with type state = Domain.t)
+    (_: Evaluation_sig.S with type state = Domain.state
+                          and type loc = Domain.location)
+    (_: Transfer_stmt.S with type state = Domain.t)
   : S with type state := Domain.t
 
 
diff --git a/src/plugins/eva/engine/iterator.mli b/src/plugins/eva/engine/iterator.mli
index 4c8d02c16bbfa8a8c7d51cdf93fc0e2a719b0c57..f38056a6de251228d7952e6fa11a0857fed99ed8 100644
--- a/src/plugins/eva/engine/iterator.mli
+++ b/src/plugins/eva/engine/iterator.mli
@@ -36,14 +36,14 @@ module Computer
     (* Set of states of abstract domain. *)
     (States : Powerset.S with type state = Abstract.Dom.t)
     (* Transfer functions for statement on the abstract domain. *)
-    (Transfer : Transfer_stmt.S with type state = Abstract.Dom.t
-                                 and type value = Abstract.Val.t)
+    (_ : Transfer_stmt.S with type state = Abstract.Dom.t
+                          and type value = Abstract.Val.t)
     (* Initialization of local variables. *)
-    (Init: Initialization.S with type state := Abstract.Dom.t)
+    (_: Initialization.S with type state := Abstract.Dom.t)
     (* Transfer functions for the logic on the abstract domain. *)
-    (Logic : Transfer_logic.S with type state = Abstract.Dom.t
-                               and type states = States.t)
-    (Spec: sig
+    (_ : Transfer_logic.S with type state = Abstract.Dom.t
+                           and type states = States.t)
+    (_: sig
        val treat_statement_assigns: assigns -> Abstract.Dom.t -> Abstract.Dom.t
      end)
   : sig
@@ -55,7 +55,6 @@ module Computer
 
   end
 
-
 (*
 Local Variables:
 compile-command: "make -C ../../../.."
diff --git a/src/plugins/eva/engine/transfer_specification.mli b/src/plugins/eva/engine/transfer_specification.mli
index 50181fb5c333ad7af5f515d26ea55c1615b9df9e..5cfd04a3e38469a4beb8ba53b0b4afd006fdc51f 100644
--- a/src/plugins/eva/engine/transfer_specification.mli
+++ b/src/plugins/eva/engine/transfer_specification.mli
@@ -26,8 +26,8 @@ open Eval
 module Make
     (Abstract: Abstractions.S)
     (States: Powerset.S with type state = Abstract.Dom.t)
-    (Logic : Transfer_logic.S with type state = Abstract.Dom.t
-                               and type states = States.t)
+    (_ : Transfer_logic.S with type state = Abstract.Dom.t
+                           and type states = States.t)
   : sig
 
     val treat_statement_assigns: assigns -> Abstract.Dom.t -> Abstract.Dom.t
diff --git a/src/plugins/eva/partitioning/partitioning_parameters.mli b/src/plugins/eva/partitioning/partitioning_parameters.mli
index 2ecf5331712a0bdb3a1bc8dbada246a27a127891..e3243989addf804db8d30ca815e0323a74db61a1 100644
--- a/src/plugins/eva/partitioning/partitioning_parameters.mli
+++ b/src/plugins/eva/partitioning/partitioning_parameters.mli
@@ -22,7 +22,7 @@
 
 open Cil_types
 
-module Make (Kf : sig val kf: kernel_function end) : sig
+module Make (_ : sig val kf: kernel_function end) : sig
   val widening_delay : int
   val widening_period : int
   val slevel : stmt -> int
diff --git a/src/plugins/eva/partitioning/trace_partitioning.mli b/src/plugins/eva/partitioning/trace_partitioning.mli
index d6e22fb5345a33f170950df629cd0b38f6b495d1..df482f9df70eb16c7a743a53f0b6178327079dc0 100644
--- a/src/plugins/eva/partitioning/trace_partitioning.mli
+++ b/src/plugins/eva/partitioning/trace_partitioning.mli
@@ -22,7 +22,7 @@
 
 module Make
     (Abstract : Abstractions.S_with_evaluation)
-    (Kf : sig val kf: Cil_types.kernel_function end) :
+    (_ : sig val kf: Cil_types.kernel_function end) :
 sig
   (** The states being partitioned *)
   type state = Abstract.Dom.t
diff --git a/src/plugins/from/dune-project b/src/plugins/from/dune-project
index 366e01a43fef7cf345003add958bb07a52c1f142..5e5648bb0c996a09b5cc549f7ba0a04ba0d47553 100644
--- a/src/plugins/from/dune-project
+++ b/src/plugins/from/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/from/from_compute.mli b/src/plugins/from/from_compute.mli
index 1723874ad7dc4ab420dc6d628d2f1bac8eefd078..9beabb6c488608a4c1efd485a7b0d775dbff2859 100644
--- a/src/plugins/from/from_compute.mli
+++ b/src/plugins/from/from_compute.mli
@@ -57,7 +57,7 @@ val compute_using_prototype_for_state :
 
 (** Functor computing the functional dependencies, according to the three
     modules above. *)
-module Make (To_Use: To_Use) : sig
+module Make (_: To_Use) : sig
   (** Compute the dependencies of the given function, and return them *)
   val compute_and_return : Kernel_function.t -> Function_Froms.t
 
diff --git a/src/plugins/impact/dune-project b/src/plugins/impact/dune-project
index 36350966e1e87900cde5ee93dfa6c1c2aa218cd3..78ae718254d966b8e54c97042295614dfbdd9e9f 100644
--- a/src/plugins/impact/dune-project
+++ b/src/plugins/impact/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/inout/dune-project b/src/plugins/inout/dune-project
index 3319087cb684d4f3b1be17478a544c1d45a5c385..52064990516ff39f01b0fa5e3b5904813cf8d03b 100644
--- a/src/plugins/inout/dune-project
+++ b/src/plugins/inout/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/instantiate/dune-project b/src/plugins/instantiate/dune-project
index 61714be1ac1f0f6475026bb3ac7ce5c15a58242c..c166d64d9c8eddd80f43fe581e64a16dcc7643de 100644
--- a/src/plugins/instantiate/dune-project
+++ b/src/plugins/instantiate/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/instantiate/instantiator_builder.mli b/src/plugins/instantiate/instantiator_builder.mli
index 751ea0a1f5781d48bbf2b54246afffbebf6dd256..d8c77f5e02941443259ebb19ff4dbc5517978267 100644
--- a/src/plugins/instantiate/instantiator_builder.mli
+++ b/src/plugins/instantiate/instantiator_builder.mli
@@ -137,4 +137,4 @@ end
     cache and function definition generation, as well as specification
     registration. This should only be used by [Transform].
 *)
-module Make_instantiator (G: Generator_sig) : Instantiator
+module Make_instantiator (_: Generator_sig) : Instantiator
diff --git a/src/plugins/instantiate/options.mli b/src/plugins/instantiate/options.mli
index c6f0114dcf2de7a4de6170e8e6b66a430d84fd5b..7393d7716624130bd5983c32e30e1aeb91ad5b6b 100644
--- a/src/plugins/instantiate/options.mli
+++ b/src/plugins/instantiate/options.mli
@@ -33,6 +33,6 @@ module Kfs : Parameter_sig.Kernel_function_set
     to true.
 *)
 module NewInstantiator
-    (B : sig val function_name: string end) : Parameter_sig.Bool
+    (_ : sig val function_name: string end) : Parameter_sig.Bool
 
 val emitter: Emitter.t
diff --git a/src/plugins/instantiate/string/mem_utils.mli b/src/plugins/instantiate/string/mem_utils.mli
index ad477f5c43a13ff88e7d751ffe65a41ed304901d..c560397794d9a4625e0eb829b044209c30e9f4cf 100644
--- a/src/plugins/instantiate/string/mem_utils.mli
+++ b/src/plugins/instantiate/string/mem_utils.mli
@@ -41,7 +41,7 @@ module type Function = sig
   val well_typed: typ option -> typ list -> bool
 end
 
-module Make (F: Function) : sig
+module Make (_: Function) : sig
   val generate_function_type : typ -> typ
   val generate_prototype : typ -> string * typ
   val well_typed_call : lval option -> varinfo -> exp list -> bool
diff --git a/src/plugins/loop_analysis/dune-project b/src/plugins/loop_analysis/dune-project
index 0db3ff404c9bbc6a9c7a096959ac492cb29f6d50..d31e06130b049620c8c7e5d0249e8d72b05f828d 100644
--- a/src/plugins/loop_analysis/dune-project
+++ b/src/plugins/loop_analysis/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/markdown-report/dune-project b/src/plugins/markdown-report/dune-project
index 5ed8ee2293837213c7731f21a0bce7f054773fa5..920d99210b4b369eef6342209f559f20150a7a3e 100644
--- a/src/plugins/markdown-report/dune-project
+++ b/src/plugins/markdown-report/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/metrics/dune-project b/src/plugins/metrics/dune-project
index 42db3b3fc021af1549c0423db5f797106b0cfb86..68310fd4976278bd416f2bdcdea69bf195b0c686 100644
--- a/src/plugins/metrics/dune-project
+++ b/src/plugins/metrics/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/nonterm/dune-project b/src/plugins/nonterm/dune-project
index 06cca356de555cfac79f0e17a7e7d9dd95f052af..df0a7bb598807478af01ce62a22602dc948fa2f1 100644
--- a/src/plugins/nonterm/dune-project
+++ b/src/plugins/nonterm/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/obfuscator/dune-project b/src/plugins/obfuscator/dune-project
index 776efcd7304909a6c7bf77656cc919d4bc0ec1dd..5ea30ad86dd693d586329ce6e7df577c77810224 100644
--- a/src/plugins/obfuscator/dune-project
+++ b/src/plugins/obfuscator/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/occurrence/dune-project b/src/plugins/occurrence/dune-project
index 0e25b9aef89901fae3f4e3ff5f92f7a7afdb821a..316594c53e43b74e2ec8febc3a65cfc54869554a 100644
--- a/src/plugins/occurrence/dune-project
+++ b/src/plugins/occurrence/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/pdg/dune-project b/src/plugins/pdg/dune-project
index 2848ef485e5fedd4ca5883d93bfee827c8ef1955..09c0389120abf233998b7f3579e035eadc5e958e 100644
--- a/src/plugins/pdg/dune-project
+++ b/src/plugins/pdg/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/postdominators/dune-project b/src/plugins/postdominators/dune-project
index 296c37ad872540185b7089c20796b156e66a71b1..20dbe0a7fa45a9a8e98aab6eba52b334a864efc5 100644
--- a/src/plugins/postdominators/dune-project
+++ b/src/plugins/postdominators/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/reduc/dune-project b/src/plugins/reduc/dune-project
index 0d005d694c5ab1c9a9f5d2f5a9013ee132297db6..02023e59bb268d68a71fa1951607a687333a0aca 100644
--- a/src/plugins/reduc/dune-project
+++ b/src/plugins/reduc/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/report/dune-project b/src/plugins/report/dune-project
index a85c40cebfa957990bdb76d898e0cd33df11caf6..f0306f7eaa7ca6d2e82a4385c70fb37a8754fde7 100644
--- a/src/plugins/report/dune-project
+++ b/src/plugins/report/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/rte/dune-project b/src/plugins/rte/dune-project
index 1087951f653046357a2763ceecb68da034298446..13e6264437c97d10bc7c7f8fe87759b25afe6802 100644
--- a/src/plugins/rte/dune-project
+++ b/src/plugins/rte/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/scope/dune-project b/src/plugins/scope/dune-project
index 8c7953c33276f34b30138afdf96d41c0c5a40e89..f35ceb4834c646c0f1f57e43ee0cc2572eed0d2c 100644
--- a/src/plugins/scope/dune-project
+++ b/src/plugins/scope/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/security_slicing/dune-project b/src/plugins/security_slicing/dune-project
index 73b3bfee2513861eca727b9147db61eaa55638ea..4bf4c106a698abd74d03c962ea2077749207ccb4 100644
--- a/src/plugins/security_slicing/dune-project
+++ b/src/plugins/security_slicing/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/server/data.mli b/src/plugins/server/data.mli
index a0bde444c1f17c1b2fb92f69a5a83e51948f25b8..e88927103f77c3ca79c14e6e775dafecf8b942bd 100644
--- a/src/plugins/server/data.mli
+++ b/src/plugins/server/data.mli
@@ -368,11 +368,11 @@ sig
 end
 
 (** Builds an indexer that {i does not} depend on current project. *)
-module Static(M : Map)(I : Info) :
+module Static(M : Map)(_ : Info) :
   Index with type t = M.key and type tag := int
 
 (** Builds a {i projectified} index. *)
-module Index(M : Map)(I : Info) :
+module Index(M : Map)(_ : Info) :
   Index with type t = M.key and type tag := int
 
 (** Datatype already identified by unique integers. *)
@@ -383,7 +383,7 @@ sig
 end
 
 (** Builds a {i projectified} index on types with {i unique} identifiers. *)
-module Identified(A : IdentifiedType)(I : Info) :
+module Identified(A : IdentifiedType)(_ : Info) :
   Index with type t = A.t and type tag := int
 
 (** Datatype already identified by unique integers. *)
@@ -394,7 +394,7 @@ sig
 end
 
 (** Builds a {i projectified} index on types with {i unique} identifiers. *)
-module Tagged(A : TaggedType)(I : Info) :
+module Tagged(A : TaggedType)(_ : Info) :
   Index with type t = A.t and type tag := string
 
 (* -------------------------------------------------------------------------- *)
diff --git a/src/plugins/server/dune-project b/src/plugins/server/dune-project
index 864472bae72a5e58bba090f72805e151aa7499af..f73b2da04b8b19c53ecf77e48d3ddaabd3b58aac 100644
--- a/src/plugins/server/dune-project
+++ b/src/plugins/server/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/slicing/dune-project b/src/plugins/slicing/dune-project
index 3c67d5396ded345be7611a622565dc940b638cc0..7b55b8d077a491676c1b2ed144ff5992b0146f5a 100644
--- a/src/plugins/slicing/dune-project
+++ b/src/plugins/slicing/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/sparecode/dune-project b/src/plugins/sparecode/dune-project
index 526b4997ab7d827949e7359def2b957a959e714e..873e175b801ef64f7bd055559e3a5f684c6d1cc9 100644
--- a/src/plugins/sparecode/dune-project
+++ b/src/plugins/sparecode/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/studia/dune-project b/src/plugins/studia/dune-project
index 1fb45865162b7a212f06d5f9e2eba44988a963b7..afe3133659b446e5cefa7bbe2ba59e97e88a6579 100644
--- a/src/plugins/studia/dune-project
+++ b/src/plugins/studia/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/users/dune-project b/src/plugins/users/dune-project
index de808f5c12f61f43c3f960ef56187e1c78aba22f..b2d79d60cc45f9c801792e907492ef027c2309b2 100644
--- a/src/plugins/users/dune-project
+++ b/src/plugins/users/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/variadic/dune-project b/src/plugins/variadic/dune-project
index 8de451bcef19ab19ed265b0b0e235faa017bd5ce..49f444baf72690488ee0d1728fbb3a02f9251b2b 100644
--- a/src/plugins/variadic/dune-project
+++ b/src/plugins/variadic/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/wp/MemDebug.mli b/src/plugins/wp/MemDebug.mli
index dca97a279721145906d448b8e26aee6af6190d29..856d1084a22c2b40448ced3983e4e416681db1d4 100644
--- a/src/plugins/wp/MemDebug.mli
+++ b/src/plugins/wp/MemDebug.mli
@@ -35,4 +35,4 @@ val pp_rloc : 'a Pretty_utils.formatter -> Format.formatter ->
 val pp_sloc : 'a Pretty_utils.formatter -> Format.formatter ->
   'a Sigs.sloc -> unit
 
-module Make(M : Sigs.Model) : Sigs.Model
+module Make(_ : Sigs.Model) : Sigs.Model
diff --git a/src/plugins/wp/MemVal.mli b/src/plugins/wp/MemVal.mli
index 96a89a399ac78bd4e381853579d36d17de1f204d..7e71f55246e6617a2ecca51bb9a88d6c1556ed92 100644
--- a/src/plugins/wp/MemVal.mli
+++ b/src/plugins/wp/MemVal.mli
@@ -88,7 +88,7 @@ sig
   val pretty : Format.formatter -> t -> unit
 end
 
-module Make(V : Value) : Sigs.Model
+module Make(_ : Value) : Sigs.Model
 
 (** The glue between WP and EVA. **)
 module Eva : Value
diff --git a/src/plugins/wp/MemVar.mli b/src/plugins/wp/MemVar.mli
index 75d459b41491d4cffe8399741c05d7a055239af9..b899ff59aa574329816d443d325fe4cce7a0bfa8 100644
--- a/src/plugins/wp/MemVar.mli
+++ b/src/plugins/wp/MemVar.mli
@@ -42,4 +42,4 @@ module Raw : VarUsage
 module Static : VarUsage
 
 (** Create a mixed Hoare Memory Model from VarUsage instance. *)
-module Make(V : VarUsage)(M : Sigs.Model) : Sigs.Model
+module Make(_ : VarUsage)(_ : Sigs.Model) : Sigs.Model
diff --git a/src/plugins/wp/dune-project b/src/plugins/wp/dune-project
index fb6fa24ce8ed1c3a612e0bc39c06e168d288d73c..03706f9a1cca4b70b1c51cc1fbcc7ee8d8fb8603 100644
--- a/src/plugins/wp/dune-project
+++ b/src/plugins/wp/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/src/plugins/wp/register.ml b/src/plugins/wp/register.ml
index 091d61aa6b9332112d3ecb196e0a9c620810a591..472469818eda9f6d9faeec430db6253d73493d3a 100644
--- a/src/plugins/wp/register.ml
+++ b/src/plugins/wp/register.ml
@@ -493,9 +493,9 @@ let do_list_scheduled_result () =
 type script = {
   mutable proverscript : bool ;
   mutable strategies : bool ;
-  mutable scratch : bool ;
-  mutable update : bool ;
-  mutable stdout : bool ;
+  scratch : bool ;
+  update : bool ;
+  stdout : bool ;
   mutable depth : int ;
   mutable width : int ;
   mutable backtrack : int ;
diff --git a/tools/hdrck/dune-project b/tools/hdrck/dune-project
index c27d657559687bced36fa7e44e8eecc60f45d10c..bc13dab0fcc32652187b959f3b3051b74801ce27 100644
--- a/tools/hdrck/dune-project
+++ b/tools/hdrck/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/tools/lint/dune-project b/tools/lint/dune-project
index 23b0e5a01616310ddedad826f70cc4edb706d0a4..803d09ccdffd650c88d1255a093bf7da444b2f0e 100644
--- a/tools/lint/dune-project
+++ b/tools/lint/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/tools/ptests/dune-project b/tools/ptests/dune-project
index 475e7f1d70b73480ec6785ac45704d07091f6de0..c5e576885d9cbe1ef6ab8f961c177334aeb1540d 100644
--- a/tools/ptests/dune-project
+++ b/tools/ptests/dune-project
@@ -1,4 +1,4 @@
-(lang dune 3.2)
+(lang dune 3.3)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                                                                        ;;
 ;;  This file is part of Frama-C.                                         ;;
diff --git a/tools/ptests/ptests.ml b/tools/ptests/ptests.ml
index 4d1178925e63237b512ff43158d4324c99ae0070..09da1de670727ed031afbcc89632eeb14909e42a 100644
--- a/tools/ptests/ptests.ml
+++ b/tools/ptests/ptests.ml
@@ -40,7 +40,6 @@ type env_t = {
   config: string
 ; dir: string
 ; dune_alias: string
-; absolute_tests_dir: string
 ; absolute_cwd: string
 }
 
@@ -610,7 +609,6 @@ type execnow =
   { ex_cmd: string;      (** command to launch *)
     ex_log: string list; (** log files *)
     ex_bin: string list; (** bin files *)
-    ex_dir: SubDir.t;    (** directory of test suite *)
     ex_timeout: string;
     ex_deps: deps;
     ex_exit_code: string option
@@ -631,7 +629,6 @@ type cmd = {
 
 type config =
   {
-    dc_subdir: SubDir.t ;
     dc_test_regexp: string; (** regexp of test files. *)
     dc_execnow    : execnow list; (** command to be launched before
                                        the toplevel(s)
@@ -727,9 +724,8 @@ end = struct
         timeout=""
       } ]
 
-  let default_config dir =
-    { dc_subdir = dir;
-      dc_test_regexp = test_file_regexp;
+  let default_config () =
+    { dc_test_regexp = test_file_regexp;
       dc_macros = Macros.default_macros ();
       dc_execnow = [];
       dc_libs = None;
@@ -749,7 +745,7 @@ end = struct
       dc_timeout = "";
     }
 
-  let scan_execnow ~file ~once dir ex_exit_code ex_timeout ex_deps (s:string) =
+  let scan_execnow ~file ~once ex_exit_code ex_timeout ex_deps (s:string) =
     if once=false then
       Format.eprintf "%s: using EXEC directive (DEPRECATED): %s@."
         file s;
@@ -781,7 +777,6 @@ end = struct
         { ex_cmd = s;
           ex_log = [];
           ex_bin = [];
-          ex_dir = dir;
           ex_deps;
           ex_timeout;
           ex_exit_code;
@@ -831,11 +826,11 @@ end = struct
       enabled_if = select ~prev:deps.enabled_if ~config:config.dc_enabled_if
     }
 
-  let config_exec ~once ~drop:_ ~file ~dir s current =
+  let config_exec ~once ~drop:_ ~file s current =
     let s = Macros.expand ~file current.dc_macros s in
     { current with
       dc_execnow =
-        scan_execnow ~file ~once dir
+        scan_execnow ~file ~once
           current.dc_exit_code current.dc_timeout (deps_of_config current)
           s :: current.dc_execnow
     }
@@ -917,14 +912,12 @@ end = struct
     end
 
   type parsing_env = {
-    current_default_toplevel: string;
     current_default_log: string list;
     current_default_bin: string list;
     current_default_cmds: cmd list;
   }
 
   let default_parsing_env = ref {
-      current_default_toplevel = "" ;
       current_default_log = [] ;
       current_default_bin = [] ;
       current_default_cmds = []
@@ -932,7 +925,6 @@ end = struct
 
   let set_default_parsing_env config =
     default_parsing_env := {
-      current_default_toplevel = config.dc_default_toplevel;
       current_default_log = config.dc_default_log;
       current_default_bin = config.dc_default_bin;
       current_default_cmds = List.rev config.dc_commands;
@@ -1024,8 +1016,12 @@ end = struct
       (fun ~drop:_ ~file:_ ~dir:_ _ current ->
          { current with dc_dont_run = true });
 
-      "EXECNOW", config_exec ~once:true;
-      "EXEC", config_exec ~once:false;
+      "EXECNOW",
+      (fun ~drop ~file ~dir:_ s acc ->
+         config_exec ~once:true ~file ~drop s acc);
+      "EXEC",
+      (fun ~drop ~file ~dir:_ s acc ->
+         config_exec ~once:false ~file ~drop s acc);
 
       "MACRO", config_macro;
       "LIBS", config_libs;
@@ -1093,7 +1089,7 @@ end = struct
 
   (* test for a possible toplevel configuration. *)
   let current_config ~env dir =
-    let default_config = default_config dir in
+    let default_config = default_config () in
     let general_config_file = SubDir.make_file dir (config_name ~env filename) in
     if Sys.file_exists general_config_file
     then begin
@@ -1941,13 +1937,6 @@ let test_pattern config =
   let regexp = Str.regexp config.dc_test_regexp in
   fun file -> Str.string_match regexp file 0
 
-(* if we have some references to directories in the default config, they
-   need to be adapted to the actual test directory. *)
-let update_dir_ref dir config =
-  let update_execnow e = { e with ex_dir = dir } in
-  let dc_execnow = List.map update_execnow config.dc_execnow in
-  { config with dc_execnow }
-
 let build_modules fmt modules =
   (* Prints rules dedicated to the build of the MODULEs *)
   let n = ref 0 in
@@ -2111,10 +2100,6 @@ let () =
   let absolute_cwd = Unix.getcwd () in
   List.iter (fun dir ->
       Format.printf "Test directory: %s@." dir;
-      let absolute_tests_dir = Filename.dirname
-          (if Filename.is_relative dir
-           then Filename.concat absolute_cwd dir else dir)
-      in
       let suites = Ptests_config.parse ~dir in
       if !verbosity >= 1 then Format.printf "%% Nb config= %d@." (StringMap.cardinal suites);
       let nb = !nb_dune_files in
@@ -2128,10 +2113,9 @@ let () =
           | _ ->
             if !verbosity >= 1 then Format.printf "%% - %s_SUITES -> nb suites= %d@."
                 (match config_mode with "" -> default_config | s -> s) (StringMap.cardinal suites);
-            let env = { config = config_mode ; dir ; dune_alias = "" ; absolute_tests_dir ; absolute_cwd} in
+            let env = { config = config_mode ; dir ; dune_alias = "" ; absolute_cwd} in
             let directory = SubDir.create ~with_subdir:false ~env dir in
             let config = Test_config.current_config ~env directory in
-            let config = update_dir_ref directory config in
             process ~env config suites) suites ;
       let nbi = !nb_ignores in
       if !verbosity >= 1 then Format.printf "%% Nb dune files= %d@." (!nb_dune_files-nb);