Assignnment compatibility with value parameters

When passing an actual parameter by value to a formal parameter of a function or procedure, the actual parameter shall be assignment compatible with the type of the formal parameter.

For example given:

   function IsDigit(c : char) : Boolean;
      if c in ['0'..'9'] then
     IsDigit := true
     IsDigit := false


   while not IsDigit(key) do

then key (the actual parameter in IsDigit(key) shall be assignment compatible with char (the type of the formal parameter).