anchor.diff:  
           // Apply the givens rotation on 2 Sparsevectors
           let applyGivens( x : SparseVector, y : SparseVector) = 
  -            let a = x.Front.value
  -            let b = y.Front.value
  +            let a = snd x.Front
  +            let b = snd y.Front
       
               let mutable c = -1.0
               let mutable s = -1.0
  
positive.code:         let QSeq = seq{ for row in Q do
                              x <- x+1
                              for entry in row.entries do
                                  yield(x, entry.index, float entry.value)}
  
          let QOut = Matrix.initSparse m n QSeq
          QOut, ROut
  
negative.code:                     s <- c * tau
  
              // rotate the start of each list
              x.Front <- (fst x.Front, c * a - s * b)
              y.PopFront |> ignore
      
              // Iterators
  