This package implements a vending machine which accepts 10-cent and 50-cent input coins, and dispenses a 50-cent packet of chewing gum whenever there is sufficient money in the machine. There is a "money back" button which returns any remaining credit. The machine is allowed to refuse input (i.e. it might refuse to accept a coin, or refuse to allow the "money back" button to be pressed). Money is always returned as 10-cent coins; it is assumed that the supply of such coins never runs out. It might be worth noting that this design, and the test program to drive it (TestVending.bsv) was originally drafted as a working design in less than an hour. The design has been slightly altered since then, and most of the commentary has also been added later. This example consists of 3 files in the inst/training/examples/vending directory: Vending.bsv : BSV code for the vending machine TestVending.bsv: The test program that drives it Vending.bspec : Bluespec project file for the development workstation