There are three ways to read a model parameter.
Model.parameters.Parameter1;
Model.parameters["Parameter1"].value;
Model.parameters["Parameter1"].evaluate();
The first is the simplest. To use it, the name of the parameter must the use directly and it cannot contain any free space.
The second allows to pass in a variable as the parameter name. It also works if the name contains spaces.
Model.parameters["Name with spaces"].value;
Lastly, the third allows to pass in parameters. This can be used when the parameter is of the "Expression" type. For example the parameter could define a statistical distribution and this would allow to pass in the lower and upper bound.
Model.parameters["Distribution"].evaluate(0, 5);
For the "matchesRLParam" expression the second way would have sufficed. I guess I just used the third out of habit.
value.Type == Model.parameters[puller.RLParamName].evaluate()
This compares the "Type" label of the value/item with the action parameter that corresponds to the processor. Like explain above, it either returns true/1 or false/0.
If the action parameter "ItemType" of processor1 was set to 3 for example, the expression would return 1 for all items of type 3.