rule-name is thing-type, compose rule = [rule-name rule-args] outside and pass-in as args