anchor.diff:          Other ->
               list_to_atom(Other)
       end.
  +
  +%%%===================================================================
  +%%% Fault Model Imports
  +%%%===================================================================
  +
  +%% @private
  +fault_model() ->
  +    case os:getenv("FAULT_MODEL") of
  +        false ->
  +            prop_partisan_crash_fault_model;
  +        SystemModel ->
  +            list_to_atom(SystemModel)
  +    end.
  +
  +%% @private
  +fault_commands() ->
  +    FaultModel = fault_model(),
  +    FaultModel:fault_commands().
  +
  +%% @private
  +fault_initial_state() ->
  +    FaultModel = fault_model(),
  +    FaultModel:fault_initial_state().
  +
  +%% @private
  +fault_functions(JoinedNodes) ->
  +    FaultModel = fault_model(),
  +    FaultModel:fault_functions(JoinedNodes).
  +
  +%% @private
  +fault_precondition(FaultModelState, Call) ->
  +    FaultModel = fault_model(),
  +    FaultModel:fault_precondition(FaultModelState, Call).
  +
  +%% @private
  +fault_next_state(PropertyState, FaultModelState, Response, Call) ->
  +    FaultModel = fault_model(),
  +    FaultModel:fault_next_state(PropertyState, FaultModelState, Response, Call).
  +
  +%% @private
  +fault_postcondition(FaultModelState, Call, Response) ->
  +    FaultModel = fault_model(),
  +    FaultModel:fault_postcondition(FaultModelState, Call, Response).
  +
  +%% @private
  +fault_is_crashed(FaultModelState, Name) ->
  +    FaultModel = fault_model(),
  +    FaultModel:fault_is_crashed(FaultModelState, Name).
  +
  +%% @private
  +fault_begin_functions() ->
  +    FaultModel = fault_model(),
  +    FaultModel:fault_begin_functions().
  +
  +%% @private
  +fault_end_functions() ->
  +    FaultModel = fault_model(),
  +    FaultModel:fault_end_functions().
  +
  +%% @private
  +fault_global_functions() ->
  +    FaultModel = fault_model(),
  +    FaultModel:fault_global_functions().
  +
  +%% @private
  +fault_num_resolvable_faults(FaultModelState) ->
  +    FaultModel = fault_model(),
  +    FaultModel:fault_num_resolvable_faults(FaultModelState).
  +
  +%%%===================================================================
  +%%% System Model Imports
  +%%%===================================================================
  +
  +%% @private
  +system_model() ->
  +    case os:getenv("SYSTEM_MODEL") of
  +        false ->
  +            exit({error, no_system_model_specified});
  +        SystemModel ->
  +            list_to_atom(SystemModel)
  +    end.
  +
  +%% @private
  +node_commands() ->
  +    SystemModel = system_model(),
  +    SystemModel:node_commands().
  +
  +%% @private
  +node_initial_state() ->
  +    SystemModel = system_model(),
  +    SystemModel:node_initial_state().
  +
  +%% @private
  +node_functions() ->
  +    SystemModel = system_model(),
  +    SystemModel:node_functions().
  +
  +%% @private
  +node_postcondition(NodeState, Call, Response) ->
  +    SystemModel = system_model(),
  +    SystemModel:node_postcondition(NodeState, Call, Response).
  +
  +%% @private
  +node_precondition(NodeState, Call) ->
  +    SystemModel = system_model(),
  +    SystemModel:node_precondition(NodeState, Call).
  +
  +%% @private
  +node_next_state(PropertyState, NodeState, Response, Call) ->
  +    SystemModel = system_model(),
  +    SystemModel:node_next_state(PropertyState, NodeState, Response, Call).
  +
  +%% @private
  +node_begin_property() ->
  +    SystemModel = system_model(),
  +    SystemModel:node_begin_property().
  +
  +%% @private
  +node_begin_case() ->
  +    SystemModel = system_model(),
  +    SystemModel:node_begin_case().
  +
  +%% @private
  +node_end_case() ->
  +    SystemModel = system_model(),
  +    SystemModel:node_end_case().
  +
  +%% @private
  +node_assertion_functions() ->
  +    SystemModel = system_model(),
  +    SystemModel:node_assertion_functions().
  +
  +%% @private
  +node_global_functions() ->
  +    SystemModel = system_model(),
  +    SystemModel:node_global_functions().
positive.code:     %% Identify trace.
      TraceRandomNumber = rand:uniform(100000),
      %% lager:info("~p: trace random generated: ~p", [?MODULE, TraceRandomNumber]),
      TraceIdentifier = atom_to_list(?SYSTEM_MODEL) ++ "_" ++ integer_to_list(TraceRandomNumber),
      ok = partisan_trace_orchestrator:identify(TraceIdentifier),
  
      %% Add send and receive pre-interposition functions to enforce message ordering.
  
negative.code:                 true ->
                      case rand:uniform(10) rem 2 =:= 0 of 
                          true ->
                              [{set,{var,0},{call,fault_model(),resolve_all_faults_with_heal,[]}}];
                          false ->
                              [{set,{var,0},{call,fault_model(),resolve_all_faults_with_crash,[]}}]
                      end;
                  false ->
                      [{set,{var,0},{call,fault_model(),resolve_all_faults_with_heal,[]}}]
              end,
  
              %% Only global node commands.
              CommandsWithOnlyGlobalNodeCommands = lists:map(fun(Fun) ->
                  {set,{var,0},{call,system_model(),Fun,[]}}
              end, node_global_functions()), 
  
              %% Derive final command sequence.
  