anchor.diff:                      | _                                                 -> name
   
   
  +        let parameterName (kind : ParameterKind) (name : string) (s : State) =
  +            let c = s.config
  +
  +            match kind with
  +                | ParameterKind.Input -> 
  +                    match Map.tryFind name builtInInputs.[s.stages.self] with
  +                        | Some s -> s
  +                        | None -> regularName kind name s
  +                | ParameterKind.Output -> 
  +                    match Map.tryFind name builtInOutputs.[s.stages.self] with
  +                        | Some s -> s
  +                        | None -> regularName kind name s
  +                | _ ->
  +                    regularName kind name s
   
               
   
  
positive.code:             }
  
  
          let private builtInInputs =
              Dictionary.ofList [
                  ShaderStage.Vertex, 
                      Map.ofList [
                          Intrinsics.VertexId, "gl_VertexID"
                          Intrinsics.InstanceId, "gl_InstanceID"
                      ]
              ]
  
          let parameterName (kind : ParameterKind) (name : string) (s : State) =
              let c = s.config
  
              if kind = ParameterKind.Output && name = Intrinsics.Position && s.stages.next = Some ShaderStage.Fragment then
  
negative.code:             inputs          : Set<string>
          }
   
  
      let private builtInInputs =
          Dictionary.ofList [
              ShaderStage.Vertex, 
                  Map.ofList [
                      Intrinsics.VertexId, "gl_VertexID"
                      Intrinsics.InstanceId, "gl_InstanceID"
                  ]
  
              ShaderStage.TessControl,
                  Map.ofList [
                      Intrinsics.PointSize, "gl_PointSize"
                      Intrinsics.ClipDistance, "gl_ClipDistance"
                      Intrinsics.PatchVertices, "gl_PatchVertices"
                      Intrinsics.PrimitiveId, "gl_PrimitiveID"
                      Intrinsics.InvocationId, "gl_InvocationID"
                  ]
  
              ShaderStage.TessEval,
                  Map.ofList [
                      Intrinsics.PointSize, "gl_PointSize"
                      Intrinsics.ClipDistance, "gl_ClipDistance"
                      Intrinsics.TessCoord, "gl_TessCoord"
                      Intrinsics.PatchVertices, "gl_PatchVertices"
                      Intrinsics.PrimitiveId, "gl_PrimitiveID"
                      Intrinsics.TessLevelInner, "gl_TessLevelInner"
                      Intrinsics.TessLevelOuter, "gl_TessLevelOuter"
                  ]
                  
              ShaderStage.Geometry,
                  Map.ofList [
                      Intrinsics.PointSize, "gl_PointSize"
                      Intrinsics.ClipDistance, "gl_ClipDistance"
                      Intrinsics.PrimitiveId, "gl_PrimitiveID"
                      Intrinsics.InvocationId, "gl_InvocationID"
                  ]
  
              ShaderStage.Fragment,
                  Map.ofList [
                      Intrinsics.FragCoord, "gl_FragCoord"
                      Intrinsics.PointCoord, "gl_PointCoord"
                      Intrinsics.FrontFacing, "gl_FronFacing"
                      Intrinsics.SampleId, "gl_SampleID"
                      Intrinsics.SamplePosition, "gl_SamplePosition"
                      Intrinsics.SampleMask, "gl_SampleMask"
                      Intrinsics.ClipDistance, "gl_ClipDistance"
                      Intrinsics.PrimitiveId, "gl_PrimitiveID"
                      Intrinsics.Layer, "gl_Layer"
                      Intrinsics.ViewportIndex, "gl_ViewportIndex"
                  ]
              ]
  
      let private builtInOutputs =
          Dictionary.ofList [
              ShaderStage.Vertex,
                  Map.ofList [
                      Intrinsics.PointSize, "gl_PointSize"
                      Intrinsics.ClipDistance, "gl_ClipDistance"
                  ]
  
              ShaderStage.TessControl,
                  Map.ofList [
                      Intrinsics.TessLevelInner, "gl_TessLevelInner"
                      Intrinsics.TessLevelOuter, "gl_TessLevelOuter"
                  ]
  
              ShaderStage.TessEval,
                  Map.ofList [
                      Intrinsics.PointSize, "gl_PointSize"
                      Intrinsics.ClipDistance, "gl_ClipDistance"
                  ]
  
              ShaderStage.Geometry,
                  Map.ofList [
                      Intrinsics.PointSize, "gl_PointSize"
                      Intrinsics.ClipDistance, "gl_ClipDistance"
                      Intrinsics.Layer, "gl_Layer"
                      Intrinsics.ViewportIndex, "gl_ViewportIndex"
                  ]
  
              ShaderStage.Fragment,
                  Map.ofList [
                      Intrinsics.Depth, "gl_FragDepth"
                      Intrinsics.SampleMask, "gl_SampleMask"
                  ]
  
          ]
  
    
      [<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
      module State =
  