the WPEval handling of comparing strings is erroneous because >,>=,<,<= are used in the wrong direction, the corresponding source should be:
wpeoLarger: ResultVar.BoolValue := CompareText(StringValue, Right.StringValue) > 0;
wpeoEqLarger: ResultVar.BoolValue := CompareText(StringValue, Right.StringValue) >= 0;
wpeoSmaller: ResultVar.BoolValue := CompareText(StringValue, Right.StringValue) < 0;
wpeoEqSmaller: ResultVar.BoolValue := CompareText(StringValue, Right.StringValue) <= 0;
Greetings
Chuck