anchor.diff:      let runningPlugins = List<IPlugin * Task>()
   
       let LoadPlugin(pluginPath: string) = 
  -        let asm = Assembly.LoadFrom(pluginPath)
  -        
  +        let asm = Assembly.LoadFile(pluginPath)
           let t = asm.GetTypes()
                   |> Seq.tryFind(fun t -> t.IsPublic &&
                                           t.IsClass &&
  
positive.code: ﻿namespace Ultima
  
  open System
  open System.Threading.Tasks
  open System.Reflection
  open System.Collections.Generic
  
negative.code:         return !s
      }
  
      member __.SignalStop(name: string) = context.RunAsync(async {
          match runningPlugins |> Seq.tryFind(fun (p,_) -> p.Info.Name = name) with
          | Some x -> TryStopPlugin(x)
          | None -> failwithf "No plugin %s running" name
      })
  
      member __.Stop(name: string, cancel: CancellationToken) = 
          context.RunAsync(async {
              match runningPlugins |> Seq.tryFind(fun (p,_) -> p.Info.Name = name) with
              | Some x -> TryStopPlugin(x)
              | None -> failwithf "No plugin %s running" name
  
              while (runningPlugins 
                     |> Seq.tryFind(fun (p,_) -> p.Info.Name = name)).IsSome do
                  do! Async.Sleep(50)
                  cancel.ThrowIfCancellationRequested()
          })
  
      member __.SignalStopAll() = async {
          do! Async.SwitchToActor(context)
          log.Trace "2. Stop all on %s" (Executor.GetCurrentName())
  
  