anchor.diff:  
   open System
   open System.IO
  +open System.Net
  +open System.Net.Sockets
   open System.Diagnostics
   open EventStore.ClientAPI
   
   module InMemoryEventStoreRunner =
   
  +    let findFreeTcpPort () =
  +        let l = new TcpListener(IPAddress.Loopback, 0)
  +        l.Start()
  +        let port = (l.LocalEndpoint :?> IPEndPoint).Port
  +        l.Stop()
  +        port
  + 
       type EventStoreAccess =     
           { Process : Process
             Connection: IEventStoreConnection }
  
positive.code: 
      let startInMemoryEventStore () =
          ensureNoZombieEventStores ()
          let eventStoreProcess = startNewProcess ()
          let connection = connectToEventStore ()
  
          {
              Process = eventStoreProcess
              Connection = connection
  
negative.code:     let clusterNodeAbsolutePath = Path.Combine(DirectoryInfo(Directory.GetCurrentDirectory()).Parent.FullName, "EventStore3\EventStore.ClusterNode.exe")
      let testNodeEnvironmentVariable = "EventfulTestNode"
      let clusterNodeProcessName = "EventStore.ClusterNode"
  
      let ensureNoZombieEventStores () =
          for proc in Process.GetProcessesByName(clusterNodeProcessName) do
  