anchor.diff:          fprintfn out "#ifndef %s" macroName
           fprintfn out "# define %s" macroName
   
  -    for ty, name, newName in List.sort exportedValues do
  +    for value in List.sort exportedNames do
           // let newName = Printer.identTable.[int newName]
  -        if ty = "" then
  -            fprintfn out "# define VAR_%s \"%s\"" (name.ToUpper()) newName
  +        if value.ty = "" then
  +            fprintfn out "# define VAR_%s \"%s\"" (value.name.ToUpper()) value.newName
           else
  -            fprintfn out "# define %c_%s \"%s\"" (System.Char.ToUpper ty.[0]) (name.ToUpper()) newName
  +            fprintfn out "# define %s_%s \"%s\"" value.ty (value.name.ToUpper()) value.newName
   
       fprintfn out ""
       for shader in shaders do
  
positive.code: open System.IO
  open Options.Globals
  
  // Values to export in the C code (uniform and attribute values)
  let mutable private exportedValues = ([] : (string * string * string) list)
  
  let reset () = exportedValues <- []
  
  // 'ty' is a prefix for the type of shader param. Nothing (VAR) for vars, "F" for hlsl functions
  let export ty name (newName:string) =
      if newName.[0] <> '0' then
          exportedValues <- exportedValues |> List.map (fun (ty2, name2, newName2 as arg) ->
              if ty = ty2 && name = newName2 then ty, name2, newName
              else arg
          )
      else
          exportedValues <- (ty, name, newName) :: exportedValues
  
  let private printHeader out (shaders: Ast.Shader[]) asAList =
      let fileName =
  
negative.code:     fprintfn out "; File generated with Shader Minifier %s" Options.version
      fprintfn out "; http://www.ctrl-alt-test.fr"
  
      for value in List.sort exportedNames do
          if value.ty = "" then
              fprintfn out "_var_%s: db '%s', 0" (value.name.ToUpper()) value.newName
          else
              fprintfn out "_%s_%s: db '%s', 0" value.ty (value.name.ToUpper()) value.newName
  
      fprintfn out ""
      for shader in shaders do
  