class AbstractHashGenerator {

    long distribute(long value) {
        // rotate 1-8 times
        return rotate(value, 1 + lowestThreeBits(value));
    }

    public  AbstractHashGenerator(Pseudorandom pseudorandom);

}