anchor.diff:      /// <param name="permitCompilation">Compile dynamic assemblies in the background, as required. Defaults to false.</param>
       member v.SubmitObjectDependencies(receiver : IRemoteAssemblyReceiver, obj:obj, ?permitCompilation:bool) =
           let assemblies = v.ComputeObjectDependencies(obj, ?permitCompilation = permitCompilation)
  -        v.SubmitAssemblies(receiver, assemblies)
  +        v.SubmitAssemblies(receiver, assemblies |> List.map(fun a -> a.AssemblyId))
   
   
       /// <summary>
  
positive.code: /// Defines an abstract assembly exporter; to be used by VagabondClient.
  type IRemoteAssemblyPublisher =
      /// receives a collection of dependencies required by remote publisher.
      abstract GetRequiredAssemblyInfo : unit -> Async<AssemblyId list>
      /// request assembly packages from publisher.
      abstract PullAssemblies : AssemblyId list -> Async<VagabondAssembly list>
  
  
negative.code:         let! dependencies = publisher.GetRequiredAssemblyInfo()
  
          // step 2. resolve dependencies that are missing from client
          let tryCheckLoadStatus (id : AssemblyId, metadata : VagabondMetadata option) =
              if v.IsLocalDynamicAssemblySlice id then None
              else
                  match v.GetAssemblyLoadInfo(id, ?loadPolicy = loadPolicy), metadata with
                  | NotLoaded id, _
                  | LoadFault (id,_), _ -> Some id
                  // local state missing required metadata
                  | Loaded(id, _, None), Some _ -> Some id
                  // local state contains partial stat initializers and incoming is of next generation
                  | Loaded(id, _, Some md), Some md' when md.IsPartial && md.Generation < md'.Generation -> Some id
                  // local state contains dependency, filter out
                  | Loaded _, _ -> None
  
          let missing = dependencies |> List.choose tryCheckLoadStatus
  
  