anchor.diff:  
   open System.Reflection
   open System
  +open Mono.Cecil
   
   module Object = 
     let eqHack (f: 'a -> 'b) (x: 'a) (yobj: Object) : Boolean =
  
positive.code:     fixpoint (Seq.fold (fun g s -> Digraph.addNode s g) Map.empty seeds)
  
    let mkAssemblyRef (t: String) =
      let asmBytes = System.IO.File.ReadAllBytes(t)
      let assm = Assembly.Load(asmBytes)
      {
        Path = t
        Assembly = assm
        Name = assm.GetName().Name
      }
  
    member x.Work(rs: String[]) = 
      let asmRefs = Array.map mkAssemblyRef rs
      let graph = mkGraph asmRefs
      let ordering = Digraph.topSort graph
      let str = List.toStringWithDelims "#r @\"" "\"\n#r @\"" "\"" ordering
      str 
  
  type OrderAssemblyReferences() = 
  
    member x.Execute paths =
      let setup = AppDomainSetup()
      do setup.ApplicationBase <- System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)
      let appDomain = AppDomain.CreateDomain("TestDomain", null, setup)
      try 
        let faw = (appDomain.CreateInstanceAndUnwrap(typeof<ForeignAidWorker>.Assembly.FullName, typeof<ForeignAidWorker>.FullName)) :?> ForeignAidWorker
        let ordering = faw.Work(paths)
        ordering
      finally
        do AppDomain.Unload(appDomain)
      
negative.code: type AssemblyRef =
    {
      Path: String
      Assembly: AssemblyDefinition
      Name: String
    }
  
  