Examples

A function to register a resource remotely:
serializable function registerAt (
   dest : location,
   tserializable type,
   res : at dest resource t,
   value : t
) {
   if (dest == localhost) {
      spawn register res = value;
   } else {
      spawn at route dest registerAt (dest, t, res, value);
   }
}
An rpc function to remotely call a function and get the result:
serializable function rpc (
   dest : location,
   paramserializable type,
   resultserializable type,
   fun : at dest resource function (pparam) : result,
   arg : param
) : result {
   let originhere = localhost;
   new rat origin resource result;
   serializable function f () {
      if (dest == localhost) {
         registerAt (origin, result, r, fun (arg););
      } else {
         spawn at route dest f ();
      }
   }
   f ();
   return access r;
}
A traceroute function (assuming a type constructor for lists):
serializable function traceroute (
   dest : location
) : list location {
   let origin : here = localhost;
   new result : at origin resource list location;
   serializable function tr (route : list location) {
      if (dest == localhost) {
         registerAt (origin, list location, result, route);
      } else {
          spawn at route dest tr (localhost :: route);
      }
   }
   tr ([origin]);
   return access result;
}
A router which turns a remote function resource into a local function resource:
function router (
   dest : location,
   tserializable type,
   port : at dest resource function (packet : t)
) : resource function (packet : t) {
   serializable function cell (in : resource function (packet : t)) {
      let next : neighbour = route dest;
      if (dest == next) {
         let out : at next resource function (packet : t) = port;
      } else {
         new out : at next resource function (packet : t);
         spawn at next cell (out);
      }
      register in (packet : t) {
         spawn at next access out (packet);
      }
   }
   new result : resource function (packet : t);
   spawn cell (result);
   return result;
}