>>> *** Source:
    N := 3;
    Echo("hello");
    task T as Echo(1 * N);
              (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames);
    play   T; (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames);
    play   T; (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames);
    pause  T; (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames); T.Value;
    pause  T; (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames); T.Value;
    finish T; (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames); T.Value;
    finish T; (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames); T.Value;
    play   T; (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames); T.Value;
    pause  T; (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames); T.Value;
    play   T; (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames); T.Value;
    finish T; (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames); T.Value;
    abort  T; (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames); T.Value;
    task T as Echo(2 * N);
              (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames);
    play   T; (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames);
    abort  T; (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames); T.Value;
    task T as Echo(3 * N);
              (T$State, T$RealTimeState, T$Finished, T$Failed, T$ErrorMessage, T$ResultNames);
    abort  T; (T$State, T$RealTimeState, T$Finished, T$Failed, T$ErrorMessage, T$ResultNames);
    play   T; (T$State, T$RealTimeState, T$Finished, T$Failed, T$ErrorMessage, T$ResultNames);
    pause  T; (T$State, T$RealTimeState, T$Finished, T$Failed, T$ErrorMessage, T$ResultNames);
    finish T; (T$State, T$RealTimeState, T$Finished, T$Failed, T$ErrorMessage, T$ResultNames);
    abort  T; (T$State, T$RealTimeState, T$Finished, T$Failed, T$ErrorMessage, T$ResultNames);

>>> *** Instructions:
   0) [0] Define N <- 3
   1) [0] Expr Echo("hello")
   2) [0] TaskProc task T as Echo(1 * N)
   3) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
   4) [0] TaskCmd play T
   5) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
   6) [0] TaskCmd play T
   7) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
   8) [0] TaskCmd pause T
   9) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
  10) [0] Expr T.Value
  11) [0] TaskCmd pause T
  12) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
  13) [0] Expr T.Value
  14) [0] TaskCmd finish T
  15) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
  16) [0] Expr T.Value
  17) [0] TaskCmd finish T
  18) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
  19) [0] Expr T.Value
  20) [0] TaskCmd play T
  21) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
  22) [0] Expr T.Value
  23) [0] TaskCmd pause T
  24) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
  25) [0] Expr T.Value
  26) [0] TaskCmd play T
  27) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
  28) [0] Expr T.Value
  29) [0] TaskCmd finish T
  30) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
  31) [0] Expr T.Value
  32) [0] TaskCmd abort T
  33) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
  34) [0] Expr T.Value
  35) [0] TaskProc task T as Echo(2 * N)
  36) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
  37) [0] TaskCmd play T
  38) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
  39) [0] TaskCmd abort T
  40) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
  41) [0] Expr T.Value
  42) [0] TaskProc task T as Echo(3 * N)
  43) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ErrorMessage, T$ResultNames)
  44) [0] TaskCmd abort T
  45) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ErrorMessage, T$ResultNames)
  46) [0] TaskCmd play T
  47) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ErrorMessage, T$ResultNames)
  48) [0] TaskCmd pause T
  49) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ErrorMessage, T$ResultNames)
  50) [0] TaskCmd finish T
  51) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ErrorMessage, T$ResultNames)
  52) [0] TaskCmd abort T
  53) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ErrorMessage, T$ResultNames)
  54) [0] End

>    0) [0] Define N <- 3
Global 'N' has DType: i8, SysType: i8
>    1) [0] Expr Echo("hello")
<Anonymous task> now playing
<Anonymous task> finished
hello
>    2) [0] TaskProc task T as Echo(1 * N)
Task 'T' added
>    3) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
(Created, Created, false, false, ())
>    4) [0] TaskCmd play T
Task 'T' now playing
>    5) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
(Playing, Finished, false, false, ())
>    6) [0] TaskCmd play T
Task 'T' already playing
>    7) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
(Playing, Finished, false, false, ())
>    8) [0] TaskCmd pause T
Task 'T' now paused
>    9) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
(Paused, Finished, false, false, (Value,))
>   10) [0] Expr T.Value
3
>   11) [0] TaskCmd pause T
Task 'T' already paused
>   12) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
(Paused, Finished, false, false, (Value,))
>   13) [0] Expr T.Value
3
>   14) [0] TaskCmd finish T
Task 'T' now playing
Task 'T' finished
>   15) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
(Finished, Finished, true, false, (Value,))
>   16) [0] Expr T.Value
3
>   17) [0] TaskCmd finish T
Task 'T' already finished
>   18) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
(Finished, Finished, true, false, (Value,))
>   19) [0] Expr T.Value
3
>   20) [0] TaskCmd play T
Task 'T' already finished
>   21) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
(Finished, Finished, true, false, (Value,))
>   22) [0] Expr T.Value
3
>   23) [0] TaskCmd pause T
Task 'T' already finished
>   24) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
(Finished, Finished, true, false, (Value,))
>   25) [0] Expr T.Value
3
>   26) [0] TaskCmd play T
Task 'T' already finished
>   27) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
(Finished, Finished, true, false, (Value,))
>   28) [0] Expr T.Value
3
>   29) [0] TaskCmd finish T
Task 'T' already finished
>   30) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
(Finished, Finished, true, false, (Value,))
>   31) [0] Expr T.Value
3
>   32) [0] TaskCmd abort T
Task 'T' already finished
>   33) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
(Finished, Finished, true, false, (Value,))
>   34) [0] Expr T.Value
3
>   35) [0] TaskProc task T as Echo(2 * N)
Overwriting task: T
Task 'T' added
>   36) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
(Created, Created, false, false, ())
>   37) [0] TaskCmd play T
Task 'T' now playing
>   38) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
(Playing, Finished, false, false, ())
>   39) [0] TaskCmd abort T
Task 'T' finished
>   40) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ResultNames)
(Finished, Finished, true, false, (Value,))
>   41) [0] Expr T.Value
6
>   42) [0] TaskProc task T as Echo(3 * N)
Overwriting task: T
Task 'T' added
>   43) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ErrorMessage, T$ResultNames)
(Created, Created, false, false, <null>, ())
>   44) [0] TaskCmd abort T
Task 'T' finished
>   45) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ErrorMessage, T$ResultNames)
(Finished, Finished, true, true, Aborted, ())
>   46) [0] TaskCmd play T
Task 'T' already finished
>   47) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ErrorMessage, T$ResultNames)
(Finished, Finished, true, true, Aborted, ())
>   48) [0] TaskCmd pause T
Task 'T' already finished
>   49) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ErrorMessage, T$ResultNames)
(Finished, Finished, true, true, Aborted, ())
>   50) [0] TaskCmd finish T
Task 'T' already finished
>   51) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ErrorMessage, T$ResultNames)
(Finished, Finished, true, true, Aborted, ())
>   52) [0] TaskCmd abort T
Task 'T' already finished
>   53) [0] Expr (T$State, T$RealTimeState, T$Finished, T$Failed, T$ErrorMessage, T$ResultNames)
(Finished, Finished, true, true, Aborted, ())
>   54) [0] End

