anchor.diff:    check "signerSignatureSize" (Marshal.GetLastWin32Error())
   #endif
     (int)pSize
  +#endif
   
   let signerSignFileWithKeyPair fileName kp = 
  +#if MONO
  +  let mutable r = 0
  +  let sn = new StrongName (kp:byte[])
  +  let r = match sn.Sign (fileName) with
  +          | true -> 0
  +          | false -> -1
  +  check "action" r
  +  let r = match sn.Verify (fileName) with
  +          | true -> 0
  +          | false -> -1
  +  check "signerSignFileWithKeyPair" r
  +#else
     let mutable pcb = 0u
     let mutable ppb = (nativeint)0
     let mutable ok = false
  
positive.code:       // Marshal.GetComInterfaceForObject adds an extra ref for importerPtr
        if IntPtr.Zero <> importerPtr then
          Marshal.Release(importerPtr) |> ignore
  
  // The symbol reader's finalize method will clean up any unmanaged resources.
  // If file locks persist, we may want to manually invoke finalize
  
negative.code:       pdbSeqPointEndColumn: int; }
  
  let pdbReadOpen (moduleName:string) (path:string) :  PdbReader = 
  #if MONO
    { symReader = null }
  #else
    let CorMetaDataDispenser = System.Type.GetTypeFromProgID("CLRMetaData.CorMetaDataDispenser")
    let mutable IID_IMetaDataImport = new Guid("7DAC8207-D3AE-4c75-9B67-92801A497D44");
    let mdd = System.Activator.CreateInstance(CorMetaDataDispenser) :?> IMetaDataDispenser
  