anchor.diff:                  let asm = Assembly.LoadFrom dllFile
                   if state.ContainsKey asmName then state.Remove asmName |> ignore
                   state.Add(asmName, {originalSource=metaprogram; assemblyLocation = dllFile; assembly = asm; metaprogramParams = metaprogramParams })
  -                File.AppendAllText("I:\\mixin.tmp", sprintf "good exit on thread %A %A\n" System.Threading.Thread.CurrentThread.ManagedThreadId id) 
                   Good asm
               | _ -> 
  -                File.AppendAllText("I:\\mixin.tmp", sprintf "bad exit on thread %A %A\n" System.Threading.Thread.CurrentThread.ManagedThreadId id) 
                   Bad (new Exception("metaprogram failed"))
           with
           | ex -> Bad (Exception(sbErr.ToString(), ex))
  
positive.code:             | Some x -> 
                  let source = x.ReflectionValue :?> string
                  let source = sprintf "[<AutoOpen>]module %s\n%s" moduleName source
                  File.AppendAllText("I:\\mixin.tmp", sprintf "compiling on thread %A %A\n" System.Threading.Thread.CurrentThread.ManagedThreadId id) 
                  File.WriteAllText(sourceFile, source)
                  let args = args dllFile
                  let errors, code = scs.Compile args
  
negative.code:                         @ references
                          |> List.toArray
                                 
          let fsi = getFsiSession()     
          try       
              fsi.EvalInteraction metaprogram                            
  