anchor.diff:                      runacc.[ii] <- 0
   
           if (accept) then
  -            Sampler(logl, pall, metr_k+1, rng, pp.SetValues values, deltas, ltotnew, ptotnew, accept, runalt, runacc)
  +            Sampler(pall, metr_k+1, rng, pp.SetValues values, deltas, ltotnew, ptotnew, accept, runalt, runacc)
           else
  -            Sampler(logl, pall, metr_k+1, rng, pp, deltas, ltotold, ptotold, accept, runalt, runacc)
  +            Sampler(pall, metr_k+1, rng, pp, deltas, ltotold, ptotold, accept, runalt, runacc)
   
       member x.Parameters = pp
       member x.LogLikelihood = ltotold
  
positive.code:         // initialize sampler
          let mutable sampler = Sampler.Create(pp, rng, logl)
          // do burn-in iterations
          for _ in 1..burnCount do sampler <- sampler.Probe(true)
          // collect sampleCount samples
          let mutable countAccepted = 0
          let samples = 
              [
              for _ in 1..sampleCount ->
                  for _ in 1..thinning do
                      sampler <- sampler.Probe(false)
                      if sampler.IsAccepted then countAccepted <- countAccepted + 1
                  {values=Array.copy sampler.Parameters.values; logLikelihood = sampler.LogLikelihood; logPrior = sampler.LogPrior}
              ]
  
negative.code:         let ptotold =  log_prior pall values
          // initialize iteration number
          let metr_k = 1
          Sampler(pall, metr_k, rng, pp.SetValues values, deltas, ltotold, ptotold, false, runalt, runacc)
  
      member x.Probe(isBurnIn:bool, logl: Parameters -> float) =
          let paramcount = pall.Length
          let rng = MT19937(rng)
          let values = Array.copy pp.values
  