In my test code below, I am trying to modify a variable by passing it as system.address to another procedure.

```
with Ada.Text_IO;
with System;
with System.Storage_Elements;

procedure Main is

  procedure Modify ( Var : in out System.Address) is
    use System.Storage_Elements;
  begin
    Var := Var + 10;
  end Modify;

  My_Var : Integer := 10; 
begin
  --  Insert code here.
  Modify (My_Var'Address);
  Ada.Text_IO.Put_Line("My_Var is:" & Integer(My_Var)'Image ); 

end Main;

```

Compiler is returning an error as below,

```
17:17 actual for "Var" must be a variable

```

I could not understand the reason as My\_Var(actual for Var) is clearly a variable. What should I change to modify My\_Var with system.address?

Note: The context of this trail is that I am trying to understand an interface module in an existing legacy project. While there could be better ways to achieve what I need, I want to understand if it is possible to modify a variable with above method.