anchor.diff:          fwd',rev'
       else
           // precalculate the fwd / rev body temps for reference
  -        let fwdAmpTm = Amyris.Bio.primercore.temp dp.pp fwd.body fwd.body.Length
  -        let revAmpTm = Amyris.Bio.primercore.temp dp.pp rev.body rev.body.Length
  +        let fwdAmpTm = Amyris.Bio.primercore.temp dp.pp fwd.body.arr fwd.body.Length
  +        let revAmpTm = Amyris.Bio.primercore.temp dp.pp rev.body.arr rev.body.Length
   
           // Start optimization of tail/body with full length tail and body for the original designed primers.
           // This may well be too long for the max oligo length but the tuneTailsOpt function will adjust till they are legal
  
positive.code:                          revTailLenMin,
                           revTailLenMax)
                      else
                          let linkerTm = temp dp.pp hd.dna hd.dna.Length
                          (None,
                           ((0.8 * float fwdMiddleLen)|>round),
                           Microsoft.FSharp.Core.int.MaxValue,
  
negative.code:                     primerR''
                  else
                      {primerR'' with
                                 tail = last.dna.RevComp();
                                 body = DnaOps.append sandwichDNA primerR''.body}
                      |> trimLinkerTailBody
              //
              // Body, [sandwich],  tail  (linker)
  