anchor.diff:  
       let assembly = Assembly.ReflectionOnlyLoadFrom(target)
   
  -    let typeIndex = newTypes |> Seq.map (fun t -> t.FullName, assembly) |> Map.addMany state.TypeIndex
  +    let typeIndex = compiledInteractions |> Seq.map (fun name -> name, assembly) |> Map.addMany state.TypeIndex
   
       {
           CompiledAssemblyCount = n
  
positive.code:     let addMany (m : Map<'K,'V>) (kvs : ('K * 'V) seq) =
          Seq.fold (fun (m : Map<_,_>) (k,v) -> m.Add(k,v)) m kvs
  
  
  let getAssemblyDiff (state : CompiledAssemblyState) =
      let snapshot = Mono.Reflection.AssemblySaver.Read(state.FsiDynamicAssembly)
      let mainModule = snapshot.MainModule
      let types = mainModule.Types
      let compiled, newTypes = 
          mainModule.Types
          |> Seq.toList
          |> List.partition (fun td -> state.TypeIndex.ContainsKey td.FullName)
  
      // TODO: resolve current interaction name
  
      for t in compiled do types.Remove t |> ignore
  
      let n = state.CompiledAssemblyCount + 1
      let target = sprintf "C:/mbrace/%d.dll" n
  
negative.code: #r "../../samples/ThunkServer/bin/Debug/ThunkServer.exe"
  #r "bin/Debug/Mono.Cecil.dll"
  #r "../../lib/Mono.Reflection.dll"
  //#r "../../packages/Mono.Cecil.0.9.5.4/lib/net40/Mono.Cecil.Rocks.dll"
  
  
  open System
  open System.Text.RegularExpressions
  open System.Reflection
  
  open Mono.Reflection
  open Mono.Cecil
  open Mono.Cecil.Cil
  
  let ass = Assembly.GetExecutingAssembly()
  let tryFindFsiName =
      let fsiRegex = Regex("FSI_[0-9]{4}")
      fun (name : string) ->
          let m = fsiRegex.Match(name)
          if m.Success then
              let name = m.Groups.[0].Value
              Some name
          else
              None
  
  type CompiledAssemblyState =
      {
  