Abilities.Abilitymodule Triggers : sig ... endwhere ('a, 'b) is (trigger, data)
module type S = sig ... endmodule type InputS = sig ... endmodule Make
(R : Roles.S)
(T :
Triggers.S
with type role = R.role
and type role_kind = R.role_kind
and type role_alignment = R.role_alignment)
(X :
InputS
with type triggers = T.t
and type trigger = T.trigger
and type trigger_kind = T.trigger_kind) :
S
with type role = R.role
and type role_kind = R.role_kind
and type role_alignment = R.role_alignment
and type triggers = T.t
and type trigger = T.trigger
and type trigger_kind = T.trigger_kind