anchor.diff:  final Op<Double> rand2 = EphemeralConst.of("R", Math::random);
   ```
   
  -## Program
  +## Program trees
  +
  +### Program creation
   
   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_.
   
  
positive.code: );
  ```
  
  The chosen _non-terminal_ operation set is sufficient to create any polynomial. For the _terminal_ operations, we added a variable "x", whith _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.
  
  
negative.code: ```
  
  For a detailed description on the correct `Engine` setup have a look at the _Example_ section.
  
  
  ### Program repair
  
  The specialized `Alterer` classes for the `ProgramChromosome` guarantees that the program tree after the _alter_ operation is still valid. the obey the tree structure of the chromosome, although they are altering the flattened `ProgramGene` sequence. General alterers, not written for `ProgramChromosome`, will most likely destroy the tree property of the altered chromosome. There are essentially two possibility for handling invalid tree chromosomes: 1) marking the chromosome as _invalid_ or 2) try to repair the invalid chromosome. Possibility 1) would be easier, but it would also lead to a possible large number of invalid chromosomes.
  
  NOTE: Jenetics allows the usage of arbitrary `Alterer` implementations. Even alterers not implemented for `ProgramChromosomes`. Chromosomes _destroyed_  by the alterer are repaired.
  
  ## Examples
  
  