procedure DoSomething (a : longint);
begin
{...}
end;
procedure DoSomething (a : real);
begin
{...}
end;You can then call procedure DoSomething with an argument of type Longint or Real. This feature has the consequence that a previously declared function must always be defined with the header completely the same.