This is a C#-based implementation of Part Three of Smalltalk-80: The Language and the Implementation.
Part Three deals with event-driven simulations, which something I've wanted to learn for a while, regardless.
It nicely builds the framework from the ground up, starting with the implementation of the various probability distributions.