Implement ch3.5.3's examples