anchor.diff:              | CLPtr(t, e) -> CAddressOf(t, e)
               | CLVecSwizzle(t, e, c) -> CVecSwizzle(t, toExpr e, c)
               | CLMatrixElement(t, e, r, c) -> CMatrixElement(t, toExpr e, r, c)
  +            | CLInput(k,t,n,i) -> CReadInput(k,t,n,i)
   
       let rec internal visit (used : Used) (e : CLExpr) =
           match e with
  
positive.code:             | CLPtr(t,_) -> t
              | CLVecSwizzle(t, _, _) -> t
              | CLMatrixElement(t, _, _, _) -> t
  
  [<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
  module CLExpr =
  
negative.code:             | CLMatrixElement(t,m,_,_) ->
                  used.AddType t
                  visit used m
  
              | CLInput(k,t,n,i) ->
                  used.AddType t
                  i |> Option.iter (CExpr.visit used)
                  
                  
  
  
  