A Prisoner's Dilemma Engine written in Haskell