diff --git a/src/plugins/eva/engine/abstractions.ml b/src/plugins/eva/engine/abstractions.ml index 35bf38ebc70d1d542d7f2694147591e5fcbb9f57..a2dd68cb5b00ffa62267c55a2657140d26e41f91 100644 --- a/src/plugins/eva/engine/abstractions.ml +++ b/src/plugins/eva/engine/abstractions.ml @@ -765,18 +765,18 @@ module Domain = struct let build domains = (* Build the contexts *) - let interactive_ctx c = Context.(make_interactive c |> assert_not_unit) in let contexts = List.fold_left add_contexts Context.init domains in + let interactive_ctx c = Context.(make_interactive c |> assert_not_unit) in let module Contexts = (val interactive_ctx contexts) in (* Build the values *) let init_values = Value.init (module Contexts) in - let interactive_value v = Value.(make_interactive v |> assert_not_unit) in let values = List.fold_left add_values init_values domains in + let interactive_value v = Value.(make_interactive v |> assert_not_unit) in let module Values = (val interactive_value values) in (* Build the locations *) let init_locations = Location.init (module Values) in - let interactive_loc l = Location.(make_interactive l |> assert_not_unit) in let locations = List.fold_left add_locations init_locations domains in + let interactive_loc l = Location.(make_interactive l |> assert_not_unit) in let module Locs = (val interactive_loc locations) in (* Build the domains *) let init_domain = init (module Contexts) (module Values) (module Locs) in diff --git a/src/plugins/eva/engine/abstractions.mli b/src/plugins/eva/engine/abstractions.mli index a953bd11e81865b027c3621688e08c5e1247e858..482ba65653723a6e2e7bd07bd95083c5b1c8052d 100644 --- a/src/plugins/eva/engine/abstractions.mli +++ b/src/plugins/eva/engine/abstractions.mli @@ -24,9 +24,6 @@ module Domain : sig - module type Context = Abstract.Context.External - module type Value = Abstract.Value.External - (** Witness of the registration of an abstract domain, it can be used to programmatically enable the domain. *) type registered @@ -52,6 +49,9 @@ module Domain : sig name:string -> descr:string -> ?experimental:bool -> ?priority:int -> (unit -> (module Abstract_domain.Leaf)) -> unit + module type Context = Abstract.Context.External + module type Value = Abstract.Value.External + (** Functor domain which can be built over any value abstractions, but with fixed locations dependencies. *) module type Functor = sig