anchor.diff:  function TGPUTransformKernelGenerator.TransformDouble(
     const Expression: Compute.ExprTrees.Expr): string;
   begin
  -  FOutput := '';
  +  Clear;
   
     Expression.Accept(Self);
   
  -  result := FOutput;
  +  result := Output;
  +end;
  +
  +procedure TGPUTransformKernelGenerator.Visit(const Node: ILambdaParamNode);
  +begin
  +  Emit('src_value');
   end;
   
   procedure TGPUTransformKernelGenerator.Visit(const Node: IArrayElementNode);
  
positive.code:     function GetFunctions: TArray<Expr.NaryFunc>;
    end;
  
    IUserFuncBodyGenerator = interface
      ['{A18ECAD5-7F4B-4D47-A606-2FACBA5AF3C3}']
  
      function GenerateUserFuncBody(const FuncBody: Compute.ExprTrees.Expr): string;
    end;
  
    TUserFuncBodyGenerator = class(TInterfacedObject, IUserFuncBodyGenerator, IExprNodeVisitor)
    strict private
      FOutput: string;
  
      procedure Visit(const Node: IConstantNode); overload;
      procedure Visit(const Node: IVariableNode); overload;
      procedure Visit(const Node: IArrayElementNode); overload;
      procedure Visit(const Node: IUnaryOpNode); overload;
      procedure Visit(const Node: IBinaryOpNode); overload;
      procedure Visit(const Node: IFuncNode); overload;
      procedure Visit(const Node: ILambdaParamNode); overload;
  
      function GenerateUserFuncBody(const FuncBody: Compute.ExprTrees.Expr): string;
    public
      constructor Create;
    end;
  
negative.code: procedure TGPUTransformKernelGenerator.Visit(const Node: IVariableNode);
  begin
    raise ENotSupportedException.Create('Variable not supported in transform kernel');
  end;
  
  initialization
  