A tower defense game that combines functional and object-oriented programming paradigms