Include KV_RO inside FS?

Someone who is more of a signature guru might find a better way to express this. I tried a direct include like this:

 module type DEVICE = sig
   type 'a io
 end
 
 module type KV_RO = sig
   include DEVICE
 end
 
 module type FS = sig
   include DEVICE
 
   include KV_RO
     with type 'a io = 'a io
 end

but this diamond-inheritance fails with duplicate definitions of "type 'a io".

The workaround is to use a submodule but this will be a bit more annoying to use.