anchor.diff:      ParamsFromFile.
   
   %% @doc Transform a proplist with simulation properties to a record
  --spec proplist_to_record([tuple()]) -> sim_params().
  +-spec proplist_to_record([{atom(), term()}]) -> sim_params().
   proplist_to_record(Proplist) ->
       Dict = dict:from_list(Proplist),
       #sim_params{?LOAD(genetic_ops, Dict),
  
positive.code: %% Callbacks
  %% ====================================================================
  
  -spec start(model(),pos_integer()) -> ok.
  start(Model, Time) ->
      start(Model, Time, []).
  
  
  -spec start(model(),pos_integer(),[tuple()]) -> ok.
  start(Model, Time, SimParamOptions) ->
      start(Model, Time, SimParamOptions, []).
  
  
  -spec start(model(),pos_integer(),[tuple()],[tuple()]) -> ok.
  start(Model, Time, SimParamOptions, ConfigOptions) ->
      SimParamsUpdated = mas_misc_util:overwrite_options(SimParamOptions, load_params()),
      Agents = mas:start(?MODULE, Model, Time, proplist_to_record(SimParamsUpdated), ConfigOptions),
  
negative.code: 
  
  %% @doc function for starting `emas` from command line
  -spec starts(list()) -> agent().
  starts([Model, Time]) ->
      start(erlang:list_to_atom(Model), erlang:list_to_integer(Time)).
  
  