Wholify.Make
module Sub : Memory_sig.Memory_domain
module Address2Scalar :
Memory_sig.Address_to_Scalar
with module Scalar := Sub.Address.Scalar
and module Address := Sub.Address
module Address :
Memory_sig.Fixed_size_value_domain with module Context = Sub.Address.Context
module Memory
(Value : Memory_sig.Value with module Context = Address.Context)
(Lift :
Memory_sig.Value_to_address
with module Address := Sub.Address
and module Value := Value) :
Memory_sig.Memory
with module Value = Value
and module Address = Address
and type boolean = Sub.Memory(Value)(Lift).boolean