anchor.diff:          let str = (kernel :> ICLKernel).Source.ToString()    
           let program, error = Cl.CreateProgramWithSource(this.Context, 1u, [|str|], null)
           let _devices = Array.ofSeq  this.Devices
  -        let error = Cl.BuildProgram(program, _devices.Length |> uint32, _devices, this.CompileOptionsStr, null, IntPtr.Zero);
  +        let error = Cl.BuildProgram(program, _devices.Length |> uint32, _devices, this.CompileOptionsStr, null, IntPtr.Zero)
           if error <> Cl.ErrorCode.Success
           then 
               let s = _devices |> Array.map (fun device -> Cl.GetProgramBuildInfo(program, device, Cl.ProgramBuildInfo.Log ) |> fst |> string)
  
positive.code:                                     and 'TRange : (new: unit -> 'TRange)>
              (query: Expr, ?_options:CompileOptions) =
          let options = defaultArg _options this.DefaultOptions_p
          this.SetCompileOptions(options)        
          this.CompileQuery<Kernel<'TRange, 'T1, 'T2>,'TRange,'T1>(query)
  
      member this.Compile<'TRange,'T1, 'T2 , 'T3
                                      when 'T1 :> Brahma.IMem
  
negative.code:                                     and 'TRange : (new: unit -> 'TRange)>
              (query: Expr, ?_options:CompileOptions) =
          let options = defaultArg _options this.DefaultOptions_p
          this.SetCompileOptions options
          this.CompileQuery<Kernel<'TRange, 'T1, 'T2, 'T3>,'TRange,'T1> query
      