anchor.diff:  static double error(final ProgramGene<Double> program) {
       return Arrays.stream(SAMPLES).mapToDouble(sample -> {
           final double x = sample[0];
  +        final double y = sample[1];
           final double result = program.eval(x);
  -        return Math.abs(sample[1] - result) +
  -            program.size()*0.0001;
  +        return abs(y - result) + program.size()*0.0001;
       })
       .sum();
   }
  
positive.code: final Op<Double> rand2 = EphemeralConst.of("R", Math::random);
  ```
  
  ## Program
  
  The `ProgramChromosome` comes with some factory methods, which lets you easily create program trees with a given depth and a given set of _operations_ and _terminals_.
  
  
negative.code: );
  ```
  
  The chosen _non-terminal_ operation set is sufficient to create any polynomial. For the _terminal_ operations, we added a variable "x", with _index_ zero, and an ephemeral _int_ constant. The purpose of the _ephemeral_ constant is to create constant values, which will differ for every tree, but stay constant within a tree.
  
  In the next step define the fitness function for the GP, which will be an _error_ function we will minimize.
  
  