anchor.diff:               (hi: byref<uint64>) =
       let gch = GCHandle.Alloc (string, GCHandleType.Pinned)
       let ptr = NativePtr.ofNativeInt (gch.AddrOfPinnedObject ())
  -    bytes (ptr)
  -          (string.Length * 2)
  -          (seed)
  -          (&lo)
  -          (&hi)
  +    bytes (ptr) (string.Length * 2) (seed) (&lo) (&hi)
       gch.Free ()
  
positive.code:     let c1 = 0x87c37b91114253d5UL
      let c2 = 0x4cf5ad432745937fUL
  
      let blocks : nativeptr<uint64> = 
        NativePtr.ofNativeInt (NativePtr.toNativeInt data)
  
      for i=0 to nblocks-1 do
        let mutable k1 = getblock64 blocks (i*2+0)
        let mutable k2 = getblock64 blocks (i*2+1)
  
        k1 <- k1 * c1
        k1 <- ROTL64 k1 31
  
negative.code:       h2 <- h2 + h1
        h2 <- h2 * 5UL + 0x38495ab5UL
  
      let mutable k1 = 0UL
      let mutable k2 = 0UL
  
      let len' = len &&& 15
  
      if 15 <= len' then k2 <-                uint64 (NativePtr.get tail 14)
      if 14 <= len' then k2 <- (k2 <<< 8) ^^^ uint64 (NativePtr.get tail 13)
      if 13 <= len' then k2 <- (k2 <<< 8) ^^^ uint64 (NativePtr.get tail 12)
      if 12 <= len' then k2 <- (k2 <<< 8) ^^^ uint64 (NativePtr.get tail 11)
      if 11 <= len' then k2 <- (k2 <<< 8) ^^^ uint64 (NativePtr.get tail 10)
      if 10 <= len' then k2 <- (k2 <<< 8) ^^^ uint64 (NativePtr.get tail  9)
      if  9 <= len' then k2 <- (k2 <<< 8) ^^^ uint64 (NativePtr.get tail  8)
                         k2 <- k2 * c2
                         k2 <- ROTL64 k2 33
                         k2 <- k2 * c1
                         h2 <- h2 ^^^ k2
  
      if  8 <= len' then k1 <-                uint64 (NativePtr.get tail 7)
      if  7 <= len' then k1 <- (k1 <<< 8) ^^^ uint64 (NativePtr.get tail 6)
      if  6 <= len' then k1 <- (k1 <<< 8) ^^^ uint64 (NativePtr.get tail 5)
      if  5 <= len' then k1 <- (k1 <<< 8) ^^^ uint64 (NativePtr.get tail 4)
      if  4 <= len' then k1 <- (k1 <<< 8) ^^^ uint64 (NativePtr.get tail 3)
      if  3 <= len' then k1 <- (k1 <<< 8) ^^^ uint64 (NativePtr.get tail 2)
      if  2 <= len' then k1 <- (k1 <<< 8) ^^^ uint64 (NativePtr.get tail 1)
      if  1 <= len' then k1 <- (k1 <<< 8) ^^^ uint64 (NativePtr.get tail 0)
                         k1 <- k1 * c1
                         k1 <- ROTL64 k1 31
                         k1 <- k1 * c2
  