Rule
protected Rule(Precondition precondition, string name) { this.precondition = precondition; this.name = name; extent [name] = this; }