@@ -120,8 +120,9 @@ module Loader : sig
120120
121121 val addidir : ?namespace : namespace -> ?recursive : bool -> string -> loader -> unit
122122 val aslist : loader -> ((namespace option * string ) * idx_t ) list
123- val locate : ?namespaces : namespace option list -> string ->
124- loader -> (namespace option * string * kind ) option
123+ val locate : ?namespaces : namespace option list ->
124+ ?kinds : (EcLoader .kind list ) -> string ->
125+ loader -> (namespace option * string * kind ) option
125126
126127 val push : string -> loader -> unit
127128 val pop : loader -> string option
@@ -170,8 +171,8 @@ end = struct
170171 let aslist (ld : loader ) =
171172 EcLoader. aslist ld.ld_core
172173
173- let locate ?namespaces (path : string ) (ld : loader ) =
174- EcLoader. locate ?namespaces path ld.ld_core
174+ let locate ?namespaces ? kinds (path : string ) (ld : loader ) =
175+ EcLoader. locate ?namespaces ?kinds path ld.ld_core
175176
176177 let push (p : string ) (ld : loader ) =
177178 ld.ld_stack < - norm p :: ld.ld_stack
@@ -522,7 +523,7 @@ and process_th_require1 ld scope (nm, (sysname, thname), io) =
522523 then [Loader. namespace ld; None ]
523524 else [nm] in
524525
525- match Loader. locate ~namespaces: nm sysname ld with
526+ match Loader. locate ~kinds: [ `Ec ; `EcA ] ~ namespaces: nm sysname ld with
526527 | None ->
527528 EcScope. hierror " cannot locate theory `%s'" sysname
528529
@@ -557,7 +558,10 @@ and process_th_require1 ld scope (nm, (sysname, thname), io) =
557558 (fun () -> Pragma. set i_pragma)
558559 in
559560
560- let kind = match kind with `Ec -> `Concrete | `EcA -> `Abstract in
561+ let kind = match kind with
562+ | `Ec -> `Concrete | `EcA -> `Abstract
563+ | _ -> assert false
564+ in
561565
562566 let scope = EcScope.Theory. require scope (name, kind) loader in
563567 match io with
0 commit comments