'Initialise a discrete probability distribution.
The parameter `genSingleton\' is expected to be a function which yields
singletons for the probability distribution.  The optional `seed\' can
be used to seed the PRNG so that the probability distribution is
generated deterministically.'

def __init__(self, genSingleton, seed=None):

    self.prng = (random if (seed is None) else random.Random(seed))
    self.sampleList = []
    self.dist = self.genDistribution(genSingleton)
    self.dumpDistribution()
