Task Tree. We can represent an evaluation of the quicksort algorithm
with a task tree consisting of parallel tasks where each task
corresponds to a parallel sub-computation as indicated by the par
primitive. Figure 2 shows such a tree representation of the evaluation
of the qsort function on the input list [5; 6; 3; 4; 1; 9].
The nodes of the task tree represent parallel tasks and the edges represent
the control dependencies between them. For example, the root
task, labeled TA, which corresponds to the first call to the function,
forks two new tasks TB and TC.