anchor.diff:      static member CreateToHostMsg m =
           {
               new ToHostCrate with
  -                member __.Apply e = e.Eval m
  +                member this.Apply e = e.Eval m
           }
           |> MsgToHost
   
       static member CreateToGPUMsg m =
           {
               new ToGPUCrate with
  -                member __.Apply e = e.Eval m
  +                member this.Apply e = e.Eval m
           }
           |> MsgToGPU
   
       static member CreateRunMsg m =
           {
               new RunCrate with
  -                member __.Apply e = e.Eval m
  +                member this.Apply e = e.Eval m
           }
           |> MsgRun
   
  
positive.code: 
          let _aBlocks = Array.init 4 (fun _ -> gpu.Allocate<_>(size))
          let _bBlocks = Array.init 4 (fun _ -> gpu.Allocate<_>(size))
          //let _res1Blocks = Array.init 4 (fun _ ->  gpu.Allocate<_>(size))
          let _resBlocks = Array.init 4 (fun _ ->  gpu.Allocate<_>(size))
  
          let mxm = Array.init 4 (fun _ -> Lib.getNewMxMAdd<_,_,_> gpu <@ (+) @> <@ (*) @>)
  
negative.code:                     let mxm = mxm.[i * 2 + j]
                      let mam = mam.[i * 2 + j]
                      mxm processors.[i * 2 + j] d mSize _aBlocks.[i * 2 + k] _bBlocks.[k * 2 + j] _resBlocks.[i * 2 + j]
  
          let barrier2 = Msg.CreateBarrierMessages 4
          Array.iteri2
  