pub(super) fn dispatch<M: MathsCore, G: RngCore<M>, A: AlgorithmDispatch<M, G, O, R>, O: Scenario<M, G>, R: Reporter, P: ReporterContext<Reporter = R>>(
partitioning: Partitioning,
event_log: Option<EventLogConfig>,
reporter_context: P,
sample: Sample,
rng: G,
scenario: ScenarioCogs<M, G, O>,
algorithm_args: A::Arguments,
pause_before: Option<NonNegativeF64>,
normalised_args: &BufferingSimulateArgsBuilder
) -> Result<SimulationOutcome<M, G>>