T ::= ... | at a T (Type Located)
l[new x : resource T; t] new x : at l resource T; l[t] ( Local extrusion)
l[new x : at m resource T; t] new x : at m resource T; l[t] ( Remote extrusion)
Replace the (Net Resource) rule by:
a : location T : type (Type Located) at a T : type
Add the type rule for declarations:
at a resource T : type , x : at a resource T
N : network (Net Resource) [x not in ]
new x : at a resource T; N : network
Replace the (Serializable Resource) rule by:
T : at a resouce T : type (Net Remote resource) [x not in ]
new x : at a resource T; : (x : resource T)
Add the subtyping rules:
a : location T : type (Serializable Located) at a T : serializable type
a : here (Sub Located) at a T <: T