Worker.MakeGroupmodule WG = MakeGroup (Name) (Request) defines a worker group all using the same Name, Event, etc. To instantiate a worker from a group, you must give the Types parameter: WG.MakeWorker(Types). This defines a Worker module of type T. This last instantiation can be safely used as first class module.
The delayed application is there to prevent multiple side-effect executions in case of multiple instantiation. (Inner events trigger side effects.)
module Name : Mavryk_base.Worker_intf.NAMEmodule Request : Mavryk_base.Worker_intf.REQUESTmodule MakeWorker
(Types : Mavryk_base.Worker_intf.TYPES) :
T
with module Name = Name
and module Request = Request
and module Types = Types