package octez-proto-libs
We have to duplicate the content of src/lib_protocol_environment/sigs/v3/set.mli
(and a few other signatures from the same directory) so we can refer to them in src/lib_protocol_environment/environment_V3.ml
. Indeed, it is impossible to refer to components of Tezos_protocol_environment_sigs.V3.T
(such as the Set
component) because T
is a module type (not a module).
It might be possible to change the way that the signatures are exported and thus allow access to some of the sub-components, at which point this whole file can be removed. Note, however, that some components make reference to others (e.g., here we need to introduce the type error_monad_trace
which we then substitute for Error_monad.trace
) so simply exporting the components will not suffice because there will be unbound types.
Ultimately, it might be easier to provide each struct as a partial or full set of legacy libraries which used to be present at the time the environment was made. For the signatures below, we would include a full implementation of Lwtreslib
as it appeared when the environment v3 was cut.
module Compare : sig ... end
module Set : sig ... end
module Map : sig ... end