anchor.diff:  
   { CLProgram }
   
  -function CLProgram.Build(const Devices: TArray<CLDevice>;
  +function CLProgram.Build(const Devices: array of CLDevice;
     const Defines: array of string; const Options: string): boolean;
   var
     devs: TArray<Compute.OpenCL.Detail.ICLDevice>;
  
positive.code:   result := FProgram.Build(devs, Defines, Options);
  end;
  
  function CLProgram.Build(const Devices: TArray<CLDevice>;
    const Options: string): boolean;
  begin
    result := Build(Devices, [], Options);
  
negative.code:     ///	</returns>
      class operator Implicit(const ProgramImpl: Compute.OpenCL.Detail.ICLProgram): CLProgram;
  
      function Build(const Devices: array of CLDevice; const Defines: array of string; const Options: string = ''): boolean; overload;
      function Build(const Devices: array of CLDevice; const Options: string = ''): boolean; overload;
  
      function CreateKernel(const Name: string): CLKernel;
  
  