code: func NewCompressor() *Compressor {
  	c := Compressor{}
  	c.w = nil
  	c.f = 0
  
  	// Calculate the largest 'digit' that can be stored in the
  	// fingerprint.  It's radix^(block-1) mod prime.  Calculated in a
  	// loop to avoid an overflow when doing something like 256^100 mod
  	// 16777213.
  
  	c.l = 1
  	var i uint32
  	for i = 0; i < block-1; i++ {
  		c.l *= radix
  		c.l &= clip
  	}
  
  	for i = 0; i < 256; i++ {
  		c.save[i] = i * c.l
  	}
  
  	c.inSize = 0
  	c.outSize = 0
  
  	return &c
  }
docs: // NewCompressor creates a new compressor.  The Compressor implements
  // io.Writer and so calling Write() compress and writes to the actual
  // output.  Note that you must call SetWriter and SetDictionary before
  // doing any compression to set the output writer.