anchor.diff:  
               static member Create (length : int, code : uint16) =
                   // mask the higher bits
  -                let code = code &&& ((1us <<< length) - 1us)
  +                let code1 = 
  +                    if length < 16 then code &&& ((1us <<< length) - 1us)
  +                    else code
   
                   // shift the code to the beginning
  -                let code = code <<< (16 - length)
  -
  -                Codeword(length, code)
  +                let code2 = code1 <<< (16 - length)
  +
  +                Codeword(length, code2)
               static member Empty = Codeword(0, 0us)
   
  -            private new(length : int, code : uint16) = { Store = code; LengthStore = byte length}
  +            private new(length : int, code : uint16) =  
  +                assert(length <= 16)
  +                { Store = code; LengthStore = byte length}
   
           end
   
  
positive.code:         
          let rand = RandomSystem()
  
          let image = PixImage<byte>(Col.Format.RGBA, V2i(32,32))
          image.GetMatrix<C4b>().SetByCoord(fun (c : V2l) ->
              if c.X > 16L then C4b.Red
              else C4b.Green
          ) |> ignore
  
          let alignedSize = V2i(next image.Size.X 8, next image.Size.Y 8)
  
negative.code:         let arr = Array.zeroCreate cnt.[0]
          b.Download(0L, arr, 0L, arr.LongLength)
  
          let data = writeImage image.Size offsets counts arr
          File.writeAllBytes @"C:\Users\Schorsch\Desktop\hugo.jpg" data
          printfn "%A (%A) %A" arr.[0] offsets.[0] cnt.[0]
          Environment.Exit 0
  
          
  
  