anchor.diff:      fun (Genotype) ->
               Train = create_train(Genotype),
               SPos = spike_positions(Train),
  -            Fitness = Fitfn(Goal, Goal_spikes, Train, SPos),
  +            Fitness = ?MODULE:Fitfn(Goal, Goal_spikes, Train, SPos),
               #neuron{gtype=Genotype, train=Train,
                       spikes=SPos, fitness=Fitness}
  +    end.
  +
  +phenotype_to_genotype_fn(_) ->
  +    fun (Phenotype) ->
  +            Phenotype#neuron.gtype
       end.
   
   -define(SPIKE_TIME_P, 2.0).
  
positive.code:             end
      end.
  
  analyze_fn(_) ->
      Comparator = fun (X, Y) ->
                           X#neuron.fitness > Y#neuron.fitness
                   end,
      fun (Pop) ->
              [Best | _] = lists:sort(Comparator, Pop),
              io:format("~w ", [Best#neuron.fitness]),
              lists:foreach(fun (v) -> io:format("~w ", [v]) end,
                            Best#neuron.train),
              io:format("~n")
      end.
  
negative.code: interval_fitness(_G, GSpikes, _A, ASpikes) ->
      Zipped = utils:zip(GSpikes, ASpikes),
      N = length(Zipped),
      if N =:= 0 -> Multizipped = [];
         true -> Multizipped = utils:zip(Zipped, tl(Zipped))
      end,
      Total = lists:foldl(fun interval_sum/2, 0, Multizipped),
      Tot_sp = Total + spike_penalty(GSpikes, ASpikes, N),
      Res = math:pow(Tot_sp, 1/?SPIKE_TIME_P) / max((N - 1), 0.00001),
  