Hello,

is there way to define module with similar interface:

module R = struct
        type topicf = (module F : I) -> F.message -> F.message
        and topic = { func: topicf; name: string }
        ...
end

it is possible in case I want to define function with similar signature I can declare used types by:
let test (type message') (module M : I with type message = message') (v: message') : message' = ...

But how should I create such type in module?

WBR, ssp