//var -s %reason. $+ $2
//set -s %reason. $+ $2
Evaluation brackets control the order of evaluation, you don't need them to set a dynamic variable nor your need $eval because
%variable command have a special evaluation routine, %reason. isn't evaluated here