docs: @Override
  	public ProgramGene<A> newInstance(
  		final Op<A> op,
  		final int childOffset,
  		final int childCount
  	) {
  		if (op.arity() != childCount) {
  			throw new IllegalArgumentException(format(
  				"Operation arity and child count are different: %d, != %d",
  				op.arity(), childCount
  			));
  		}
  
  		return new ProgramGene<>(op, childOffset, _operations, _terminals);
  	}