Perl 6 first compiles code, and then runs it. The C phaser interleaves a run time phase into the compilation phase, that is, the code inside the C phaser is first compiled, then run, and then the rest of the compilation continues. In the hypothetical code example A; BEGIN { B } C; the phases are: =item compilation of A =item compilation of B =item run time of B =item compilation of C =item run time of A =item run time of C The same happens when Cing a module that is not precompiled; in a code like C, the C statement runs at compile time, which first compiles C, runs the mainline of C, and then continues compiling the rest of the program that contains the C statement. The inverse of this operation is the C function, which compiles and then runs code during the run time phase. For instance the phases of A; EVAL 'B'; C are =item compilation of the whole program =item run time of A =item run time of EVAL =item compilation time of B =item run time of B =item run time of C Interleaving of run time and compile time can be arbitrarily nested. If you C a module that Cs another module, that already constitutes two levels of nesting.