anchor.diff:      member this.``Arr of tuples``() = 
           let command = 
               <@ 
  -                fun (range:_1D) (buf:array<int>) (k1:int*int) (arr:array<int*int>)  -> 
  +                fun (range:_1D) (buf:array<int>)  (k1:int*int) (arr:array<int*int>) (arr2:array<int*byte>)  -> 
                       let k2 = (5, 6)
  +                    let k3 = (0, 1uy)
  +                    arr2.[0] <- k3
                       arr.[0] <- k1
                       arr.[1] <- k2
                       buf.[0] <- fst (arr.[0]) + snd (arr.[1]) + snd (arr.[2])
  -            @>
  -        let run,check = checkResult command
  -        run _1d intInArr (1, 2) [|(1, 2); (3, 4); (5, 6)|]
  -        check intInArr [|13; 1; 2; 3|]
  +                    buf.[1] <- fst (arr2.[0])
  +            @>
  +        let run,check = checkResult command
  +        run _1d intInArr (1, 2) [|(1, 2); (3, 4); (5, 6)|] [|(1, 2uy)|]
  +        check intInArr [|13; 0; 2; 3|]
   
       [<Test>]
       member this.``Triple``() = 
  
positive.code:         check intInArr [|5; 6; 2; 3|]
  
      [<Test>]
      member this.``Constructor``() = //doesn't work
          let command = 
              <@ 
                  fun(range:_1D) (buf:array<int>)  -> 
                      let z = (new c(6)).x + 4
                      buf.[1] <- z
              
              @>
          let run,check = checkResult command
          run _1d intInArr         
          check intInArr [|5;6;2;3|]
  
      [<Test>]
      member this.``Struct with arr``() = //doesn't work
          let command = 
              <@ 
                  fun(range:_1D) (buf:array<int>) (s:d) -> 
  
negative.code:             <@ 
                  fun (range:_1D) (buf:array<int>) (k:int*int)  -> 
                      let k2 = (3, 8)
                      let k3 = (2, 5uy)
                      let k4 = (1,2)
                      let x = fst k
                      let y = snd k
                      buf.[0] <- x
  