set_rule changed to set_definition
added #,{} options to [[<-