anchor.diff:  
               do! resetCompilerState
   
  +            let nextStage =
  +                match e.tessControlShader with
  +                    | Some _ -> TessControl
  +                    | _ -> nextStage
  +
               let! vsCode = compile {
                               let vs = 
                                   match e.vertexShader with
  
positive.code:                 result
  
  
              let! tessUsed, tessCode = match e.tessControlShader, e.tessEvalShader with
                                          | None, None -> compile { return gsUsed, None }
                                          | Some tcs, Some tev ->
  
negative.code:                             let additional = tessUsed |> Map.filter (fun k _ -> not <| Map.containsKey k vs.outputs)
                              let vs = addOutputs additional vs
  
                              //let nextShader = (if hasgs then Geometry(None, TriangleStrip) else Fragment) |> Some
                              let unused = 
                                  vs.outputs |> Map.filter (fun k v -> not <| Map.containsKey k tessUsed) 
                                   |> removeIntrinsics vs.shaderType (Some nextStage)
                                   |> Seq.map(fun (KeyValue(k,(_,v))) -> v) |> Set.ofSeq
  
                              let vs = removeOutputs unused vs
  
                              let vs = adjustToConfig config vs None (Some nextStage)
                              
                              let! vsc = compileShader "VS" vs
  
  