Quicky 5 min presentation that escalated into 30 mins after some questions. The slides are somewhat terse. A couple of quick points that might help: * f.partial (partial application) "locks" a parameter passed to a function. Those not locked remain free. Suppose following: f(a, b). g = partial(f, 'foo'). g('bar) == f('foo', 'bar') * The bit at generators (see QuickCheck) makes probably a bit more sense if you read it this way "for a in a number list, make sure that choose(a) is between number bounds (min/max)". Essentially all it does is to exercise the function using a bunch of randomly generated asserts such as this.