anchor.diff:  
       // First lift all the tokens from the last slot
       lifted := mutDeck.[lastPos].counter
  -    mutDeck.[lastPos] != 0
  +    mutDeck.[lastPos].counter <- 0
   
       // Find the right-most token that isn't lifted
       match mutDeck |> Seq.toList
  
positive.code:             while mutDeck.[!pos].counter >= mutDeck.[!pos].max do
                  // Pick up tokens
                  lifted := !lifted + mutDeck.[!pos].counter
                  mutDeck.[!pos] != 0
  
                  // Move one slot to the left
                  pos := !pos - 1
  
negative.code:     // Convenience operators for manipulating the counter of a MutSlot
      static member (+=) (ms : MutSlot, a) = ms.counter <- ms.counter + a
      static member (-=) (ms : MutSlot, a) = ms.counter <- ms.counter - a
  
  let rec NextCombination (oldBoard:Board) : Board option =
      // Mutable copy of the deck
  