anchor.diff:  
       let internal FindProcessHandle (input : Input) =
           try
  -            input.Prc.MainWindowHandle
  +            Success input.Prc.MainWindowHandle
           with
  -            | :? System.InvalidOperationException -> nativeint 0
  -            | :? System.NullReferenceException -> nativeint 0
  +            | :? System.InvalidOperationException -> Failure "InvalidOperationException"
  +            | :? System.NullReferenceException -> Failure "NullReferenceException"
   
   
       let internal FindLockHandle (input: Input) =
  
positive.code: 
  module PopOpen =
  
      type Result<'nativeint> =
          | Success
          | Failure
  
      
      type Input = { File: string; Prc: Process }
  
negative.code:         |> InUseDetection.GetProcessesUsingFiles
          |> List.ofSeq<Process>
          |> fun ps -> match ps with
                       | [] -> Failure "Can't find the process"
                       | p :: _ -> Success p.MainWindowHandle
  
  
      let internal SelectHandle getProcHandle findLockHandle (input: Input) log = 
  