anchor.diff:  
               }
   
  -        let gs2 (v : Triangle<Vertex>) =
  +        let nop (v : Triangle<Vertex>) =
  +            triangle {
  +                yield v.P0
  +                yield v.P1
  +                yield v.P2
  +            }
  +
  +        let invert (v : Triangle<Vertex>) =
               triangle {
                   
                   let p01 = (v.P0.wp + v.P1.wp) / 2.0
  
positive.code: 
          type Vertex = { [<Position>] p : V4d; [<WorldPosition>] wp : V4d; [<Color>] c : V4d; [<Normal>] n : V3d; [<Semantic("LightDir")>] ldir : V3d }
  
          let gs0 (v : Triangle<Vertex>) =
              triangle {
                  
                  let cc = v.P0.c
                  let n = v.P0.n
                  let cp = (v.P0.wp + v.P1.wp + v.P2.wp) / 3.0
                  //let cc = (v.P0.c + v.P1.c + v.P2.c) / 3.0
  
  
                  // 0 1 c   c 1 2   c 2 3
                  yield { v.P0 with c = cc; n = n }
                  yield { v.P1 with c = cc; n = n }
                  yield { p = uniform.ViewProjTrafo * cp; wp = cp; c = cc; n = n; ldir = V3d.Zero}
                  yield { v.P2 with c = cc; n = n }
                  yield { v.P0 with c = cc; n = n }
  //                restartStrip()
  //                
  //                yield { p = uniform.ViewProjTrafo * cp; wp = cp; c = V4d.OIOI; n = n; ldir = V3d.Zero }
  //                yield { v.P1 with c = V4d.OIOI; n = n }
  //                yield { v.P2 with c = V4d.OIOI; n = n }
  //                restartStrip()
  //                
  //                yield { v.P2 with c = V4d.OOII; n = n }
  //                yield { v.P0 with c = V4d.OOII; n = n }
  //                yield { p = uniform.ViewProjTrafo * cp; wp = cp; c = V4d.OOII; n = n; ldir = V3d.Zero }
  
              }
  
          let gs1 (v : Triangle<Vertex>) =
              triangle {
              
                  let cp = (v.P0.wp + v.P1.wp + v.P2.wp) / 3.0
  
negative.code: 
          let available = 
              [ 
                  "divide", toEffect Shader.divide
                  "shrink", toEffect Shader.shrink 
                  //"extrude", toEffect Shader.extrude
                  "invert", toEffect Shader.invert
                  //"tricolor", toEffect Shader.tricolor
              ]
  
          let combinations = 
  