Game Rules with a Free Monad DSL
roganmurley.com