anchor.diff:          Marshal.Copy(buffer, o, store + offset, count)
           length <- length + nativeint count
           offset <- offset + nativeint count
  +
  +
  +type IAssemblerStream =
  +    inherit IDisposable
  +
  +    abstract member BeginFunction : unit -> unit
  +    abstract member EndFunction : unit -> unit
  +    abstract member BeginCall : args : int -> unit
  +    abstract member Call : ptr : nativeint -> unit
  +    abstract member PushPtrArg : location : nativeint -> unit
  +    abstract member PushIntArg : location : nativeint -> unit
  +    abstract member PushFloatArg : location : nativeint -> unit
  +    abstract member PushArg : value : nativeint -> unit
  +    abstract member PushArg : value : int -> unit
  +    abstract member PushArg : value : float32 -> unit
  +    abstract member Ret : unit -> unit
  +    abstract member WriteOutput : value : nativeint -> unit
  +    abstract member WriteOutput : value : int -> unit
  +    abstract member WriteOutput : value : float32 -> unit
   
   module AMD64 =
   
  
positive.code:         static let fourByteNop      = [| 0x0Fuy; 0x1Fuy; 0x40uy; 0x00uy |]
          static let fiveByteNop      = [| 0x0Fuy; 0x1Fuy; 0x44uy; 0x00uy; 0x00uy |]
          static let eightByteNop     = [| 0x0Fuy; 0x1Fuy; 0x84uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy; 0x00uy |]
  
  
          member x.Leave() =
              writer.Write(0xC9uy)
  
negative.code:     type AssemblerStream(stream : Stream, leaveOpen : bool) =
          let writer = new BinaryWriter(stream, Text.Encoding.UTF8, leaveOpen)
  
          static let localConvention =
              match Environment.OSVersion with
                  | Windows -> CallingConvention.windows
                  | _ -> CallingConvention.linux
  
          let mutable stackOffset = 0
          let mutable callPadded = []
          let mutable paddingPtr = []
  