The core types and module signatures.
A way for objects to provide an optional private API to certain other modules. For example, CapTP proxies appear as plain services, but use this to reveal their target details to the CapTP layer so that it can shorten the path when sending such capabilties over the network.
The capabilities attached to a message. This is only defined as an open type to avoid a nasty recursive type definition.
type attachments +=
module type WIRE_PAYLOAD = sig ... end
module type WIRE = sig ... end
The core RPC logic can be used with different serialisation systems. The appropriate types should be provided here.
module type PAYLOAD = sig ... end
WIRE_PAYLOAD to deal with caps rather than attachments.
module type CORE_TYPES = sig ... end
This module defines a calling convention for invoking methods on objects. The objects could be remote, but this module doesn't define anything related to networks. These types are generated automatically from
module type NETWORK_TYPES = sig ... end