startBenchmark, ( startMetric, ( startTarget, ( metricRecorded | metricFailed ), endTarget ) * , endMetric ) * , endBenchmark