anchor.diff:              gen_tcp:send(Sock, io_lib:fwrite("~w~n", [Floats])),
               ets:delete_all_objects(genetica_cognitive_ets),
               %% ^ hack, flip over to gen_server for next task.
  +            random:seed(now()),
               Refit = genetica_utils:pmap(fun refit/1, Pop),
               ets:insert(genetica_cognitive_ets, Refit),
               ok
       end.
   
  -test() ->
  -    random:seed(now()),
  -    Fn = random_genotype_fn(nil),
  -    G1 = Fn(), G2 = Fn(),
  -    X = crossover_fn(nil),
  -    M = mutation_fn([1.0, 100]),
  -    M(G1),
  -    io:format("~p~n~p~n", [G1, M(G1)]),
  -    ok.
  -
  
positive.code:     [{c, _, #vstate{o = C}}] = ets:lookup(Ets, c),
      [{d, _, #vstate{o = D}}] = ets:lookup(Ets, d),
      [{tpos, OldPos}] = ets:lookup(Ets, tpos),
      RawPos = OldPos + clamp(round(5*(D-C)), -4, 4),
      if RawPos < 0 ->
              NewPos = RawPos + ?AREA_WIDTH;
  
negative.code: %    io:format("~P~n~n", [ets:match_object(Ets, '_'), 100]),
      nil.
  
  reset_tracker(Ets) ->
      ets:insert(Ets,
                 [case ets:lookup(Ets, V) 
                      of [{X, Y, _}] ->
                          {X, Y, #vstate{}}
                  end || V <- [a, b, c, d]]).
  
  block_run(Ets) ->
      new_block(Ets),
      genetica_utils:repeatedly(?AREA_HEIGHT, fun() -> step(Ets) end),
      sense(Ets),
      Sensed = ets:select(Ets, ?ETS_INTEGERS),
      reset_tracker(Ets),
      case ets:lookup(Ets, block) of
          [#block{size=S, y=0, x=_}] ->
              if S >= ?TRACKER_SIZE ->
                      {avoid, math:pow(lists:sum(Sensed)/?TRACKER_SIZE, 2)};
                 S < ?TRACKER_SIZE ->
                      {capture, math:pow(lists:sum(Sensed)/S, 2)}
              end
      end.
  
  simulate_run(G) ->
  %    io:format("whole:~n~p~n~n", [G]),
      Ets = ets:new(x, [set]),
      ets:insert(Ets, {delta, 0}),
      Firsts = lists:zip([#edge{from=F, to=T} || T <- [a, b],
                                                 F <- [1, 2, 3, 4, 5, a, b]],
                         lists:sublist(G, 2*7)),
  