title: Solving the Expression_Problem in computer game design
body: <p>No other game impressed me more than <a href="http://www.ancientdomainsofmystery.com/" rel="nofollow">ADOM</a> because of its almost endless ways you can interact with its world. To name a few: If you have waterproof blankets your items will not rust in rain, you can cut trees to build a bridge, dip weapons into potions, kick locked doors etc.</p>
  
  <p>With such complexity of interactions each new feature may require refactoring, recompilation, then cause broken tests, bugs etc. This seems to be an interesting case of the Expression Problem.</p>
  
  <p><strong>The Question:</strong></p>
  
  <p>Can solution to Expression Problem be expressed in Agda or Haskell as a reusable library or a design pattern?</p>