Operators appearing within a parallel construct must be scheduled into a single phase to allow the application to use them all unpredictably. The parallel construct is thus more restrictive than the sequential construct, since the COP compiler is free to treat a sequential as a parallel, but not the reverse.
An alternate form of the parallel command is available as a macro which can parameterize multiple instances of a parallel command. The doall command takes a variable specification (in the same form as a let statement, with list values for the variables), and converts it into a parallel command by concatenating the results of evaluating the body with the variables bound to all combinations of their list members in turn.