anchor.diff:  
   
           type BitStream(coder : HuffmanCoder, s : System.IO.Stream) =
  -            let mutable current = Codeword(0uy, 0us)
  +            let mutable current = Codeword.Empty
               let result = System.Collections.Generic.List<byte>()
   
               static let bla (f : byte[]) =
  
positive.code: 
  
          let testBlock =
  //            [|
  //                V3d.IOO; V3d.IOO; V3d.IOO; V3d.IOO; V3d.OIO; V3d.OIO; V3d.OIO; V3d.OIO
  //                V3d.IOO; V3d.IOO; V3d.IOO; V3d.IOO; V3d.OIO; V3d.OIO; V3d.OIO; V3d.OIO
  //                V3d.IOO; V3d.IOO; V3d.IOO; V3d.IOO; V3d.OIO; V3d.OIO; V3d.OIO; V3d.OIO
  //                V3d.IOO; V3d.IOO; V3d.IOO; V3d.IOO; V3d.OIO; V3d.OIO; V3d.OIO; V3d.OIO
  //                V3d.IOO; V3d.IOO; V3d.IOO; V3d.IOO; V3d.OIO; V3d.OIO; V3d.OIO; V3d.OIO
  //                V3d.IOO; V3d.IOO; V3d.IOO; V3d.IOO; V3d.OIO; V3d.OIO; V3d.OIO; V3d.OIO
  //                V3d.IOO; V3d.IOO; V3d.IOO; V3d.IOO; V3d.OIO; V3d.OIO; V3d.OIO; V3d.OIO
  //                V3d.IOO; V3d.IOO; V3d.IOO; V3d.IOO; V3d.OIO; V3d.OIO; V3d.OIO; V3d.OIO
  //            |]
              [|
                  V3d.III; V3d.III; V3d.III; V3d.III; V3d.OOO; V3d.OOO; V3d.OOO; V3d.OOO
                  V3d.III; V3d.III; V3d.III; V3d.III; V3d.OOO; V3d.OOO; V3d.OOO; V3d.OOO
                  V3d.III; V3d.III; V3d.III; V3d.III; V3d.OOO; V3d.OOO; V3d.OOO; V3d.OOO
                  V3d.III; V3d.III; V3d.III; V3d.III; V3d.OOO; V3d.OOO; V3d.OOO; V3d.OOO
                  V3d.III; V3d.III; V3d.III; V3d.III; V3d.OOO; V3d.OOO; V3d.OOO; V3d.OOO
                  V3d.III; V3d.III; V3d.III; V3d.III; V3d.OOO; V3d.OOO; V3d.OOO; V3d.OOO
                  V3d.III; V3d.III; V3d.III; V3d.III; V3d.OOO; V3d.OOO; V3d.OOO; V3d.OOO
                  V3d.III; V3d.III; V3d.III; V3d.III; V3d.OOO; V3d.OOO; V3d.OOO; V3d.OOO
              |]
  
          type Codeword =
              struct
                  val mutable Length : byte
                  val mutable Code : uint16
  
                  override x.ToString() =
                      if x.Length = 0uy then 
                          "0"
                      else
                          let mutable str = ""
                          let mutable mask = 1us <<< (int x.Length - 1)
                          for i in 1 .. int x.Length do
                              if x.Code &&& mask <> 0us then str <- str + "1"
                              else str <- str + "0"
                              mask <- mask >>> 1
  
                          str
  
                  member x.AppendBit(b : bool) =
                      Codeword(x.Length + 1uy, (x.Code <<< 1) ||| (if b then 1us else 0us))
  
                  member x.AppendBits(count : byte, value : uint16) =
                      Codeword(x.Length + count, (x.Code <<< int count) ||| (value &&& ((1us <<< int count) - 1us)))
  
                  new(l,c) = { Length = l; Code = c }
              end
  
          let QLum =
  
negative.code:                 let v = uint16 (off + v)
                  let huff = coder.dcChromaInv.[dc]
                  x.Write(huff)
                  x.Write(Codeword.Create(dc, v))
  
              member x.WriteACChrom(leadingZeros : int, v : int) =
                  assert(leadingZeros < 16) 
  