
module VARIABLE (TYPES, CHANNELS) is

process Variable [G: Operation] (in var val: Nat) is
   -- process modeling a shared variable; "val" is the initial value
   loop
      alt
         G (Read, val, ?any Pid)
       []
         G (Write, ?val, ?any Pid)
      end alt
   end loop
end process

end module

