b6680398c3
stopFinishedAlarms and repeatableRules each built their own map[string]rule (one keyed to loop.Rule, one to bool) from t.rules on every call. Factored into rulesByName(), one map[string]loop.Rule both callers read.