anchor.diff:  type ResponseMessage =
       | Good of Assembly
       | Bad of Exception
  -//
  -//type CompileMessage =
  -//    | Compile of source : string * location : string * dynamic : bool * AsyncReplyChannel<ResponseMessage>
  -//    | GetBytes of assemblyName : string * AsyncReplyChannel<byte[]>
  -//    
   
   type MixinData = 
       { originalSource : string // original metaprogram before any modifications
  
positive.code: //                | Some s -> metaprogram.Replace(s, sprintf "%s\n[<AutoOpen>]module %s=\n" s moduleName )
  //                | None -> sprintf "[<AutoOpen>]module %s=\n%s" moduleName metaprogram
  
          File.AppendAllText("I:\\mixin.tmp", sprintf "entering compile on thread %A %A\n" System.Threading.Thread.CurrentThread.ManagedThreadId id) 
                                    
          if File.Exists sourceFile then File.Delete sourceFile
          if File.Exists dllFile then File.Delete dllFile
                          
  
negative.code:             | Some x -> 
                  let source = x.ReflectionValue :?> string
                  let source = sprintf "[<AutoOpen>]module %s\n%s" moduleName source
                  File.WriteAllText(sourceFile, source)
                  let args = args dllFile
                  let errors, code = scs.Compile args
  