Refactor the Monoid instance for Rules
Start to make Rules polymorphic
Make RuleInfo polymorphic