anchor.diff:          /// A list of machines that are bound to socket events.
           let mutable machines: Map<int64, IMachine<'c>> = Map.empty
   
  -        let stop =
  +        let stop () =
               match loop with
               | Idle(_) ->    ()
   
  -            | Running(l) -> wakeup.Dispose()
  +            //TODO: This needs to be able to join the thread
  +            | Running(l) -> printfn "Stopping on thread %i" Thread.CurrentThread.ManagedThreadId
                               l.Stop()
  -                            loop <- LoopState.Idle(l)
  +                            loop <- LoopState.Idle(new UvLoopHandle())
                               printfn "Stopped"
   
           /// Remove a machine from the list and check for any active machines
  
positive.code:                                         |> Seq.cast<int64>
                                          |> Seq.iter(
                                              fun token ->
                                                  printfn "Wakeup setup"
                                                  match (Map.tryFind token machines) with
                                                  | Some(machine) -> runOnce token machine.wakeup
                                                  | _ -> ()
                                          )
                                  ), 
                                  System.Action<_, _>(fun p1 p2 -> ())
  
negative.code: 
  module Fsm =
      open System
      open System.Threading
      open System.Collections.Concurrent
      open Rotor.Libuv.Networking
  
  