anchor.diff:          Result := TValue.From(LParamReader.AsChar(LAttr));
         end;
   
  -//      tkEnumeration: ;
  -//      tkSet: ;
  +      tkEnumeration:
  +      begin
  +        if (AParam.ParamType.Handle = System.TypeInfo(Boolean)) then
  +          Result := TValue.From<Boolean>(LParamReader.AsBoolean(LAttr));
  +      end;
  +
  +      //      tkSet: ;
   
         tkClass:
         begin
  
positive.code:       function AsInteger(AAttr: TCustomAttribute): Integer;
        function AsChar(AAttr: TCustomAttribute): Char;
        function AsFloat(AAttr: TCustomAttribute): Double;
        function AsDateTime(AAttr: TCustomAttribute): TDateTime;
      end;
    private
  
negative.code:     Result := StrToFloat(LValue);
  end;
  
  function TWiRLApplicationWorker.TParamReader.AsBoolean(AAttr: TCustomAttribute): Boolean;
  var
    LValue: string;
  begin
    LValue := AsString(AAttr);
    if LValue.IsEmpty then
      Result := False
    else
      Result := StrToBool(LValue);
  end;
  
  function TWiRLApplicationWorker.TParamReader.AsChar(AAttr: TCustomAttribute): Char;
  var
    LValue: string;
  