anchor.diff:  par_transition(ToID, NestedFSMIDs) ->
     {par_transition, ToID, NestedFSMIDs}.
   
  +start_subsession_transition(ToID, SubsessionName, RoleInstantiationList) ->
  +  {start_subsession_transition, ToID, SubsessionName, RoleInstantiationList}.
  +
  +subsession_success_transition(ToID) ->
  +  {subsession_success_transition, ToID}.
  +
  +subsession_failure_transition(ToID, FailureName) ->
  +  {subsession_failure_transition, ToID, FailureName}.
  +
   %%% State creation functions: Standard state, and a state "containing" nested FSMs
   standard_state() -> standard_state.
   %par_state(NestedFSMIDs) -> {par_state, NestedFSMIDs}.
  
positive.code: 
  instruction_size({rec, _, Block}) ->
    block_size(Block);
  instruction_size({choice, _, Choices}) ->
    lists:foldl(fun(ChoiceBlock, Sum) ->
                Sum + (block_size(ChoiceBlock)) end, 0, Choices);
  instruction_size(_) -> 0.
  
  % add_state: Takes FSMState, returns (new state ID, new FSMState)
  add_state(State, FSMState) ->
  
negative.code: % evaluate_block([X|XS], PrevIndex, EndIndex, FSMState, MonitorState) ->
  
    ScopeEndIndex = block_size(Block) + 1,
    EvalRes = evaluate_block(Block, 0, ScopeEndIndex, orddict:new(), FSMState1, MonitorState2),
    case EvalRes of
      {FSMState2, MonitorState3} ->
  