Make.AbstractFunctor to create and implementation for an AbstractProtocol (protocol that simulates AbstractNodes).
module Event : Simulator.Events.Eventmodule Queue : Simulator.Events.EventQueue with type ev = Event.tmodule Timer : Abstractions.Timer.Timermodule GoodNode : AbstractNode with type ev = Event.tmodule BadNode : AbstractNode with type ev = Event.t and type value = GoodNode.value and type node_data = GoodNode.node_datamodule Initializer : Initializer with type node = GoodNode.t and type ev = Event.tmodule Logger : Simulator.Logging.Logger with type ev = Event.tmodule Statistics : Simulator.Statistics.Statsmodule Network : Abstractions.Network.Network