Some background: this is an implementation of a Nomic  game in Haskell (I believe the first complete implementation of a Nomic game on a computer). At the beginning, the initial rules are describing:
- how to add new rules and change existing ones. For example a unanimity vote is necessary to have a new rule accepted. - how to win the game. For example you win the game if you have 5 rules accepted. But of course even that can be changed!