mirage/mirage-types — pull request #8 by djs55 (2013-12-06 18:56:56+00:00)
Title: 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.