anchor.diff:                  realIntersections |> Seq.isEmpty |> not
   
                       
  -            let allSplines = p.outline |> Array.choose (function Bezier3(p0, p1, p2, p3) -> Some(Polygon2d(p0, p1, p2, p3)) | _ -> None)
  +            let allSplines = 
  +                p.outline |> Array.choose (fun s ->
  +                    match s with
  +                        | Bezier3(p0, p1, p2, p3) -> Some(Polygon2d(p0, p1, p2, p3))
  +                        | Bezier2(p0, p1, p2) -> Some(Polygon2d(p0, p1, p2))
  +                        | _ -> None
  +                )
   
               let rec run (l : list<PathSegment>) =
                   match l with
  
positive.code:                         run rest
  
                      | Bezier2(p0, p1, p2) :: rest ->
                          start p0
                          add p0
  
                          let p1Inside = p1.PosLeftOfLineValue(p0, p2) > 0.0
                          if p1Inside then add p1
  
                          boundaryTriangles.AddRange [p0; p1; p2]
                          boundaryCoords.AddRange [V3d(0,0,0); V3d(0.5, 0.0, 0.5); V3d(1,1,1)]
  
                          add p2
                          current <- p2
                          run rest
  
                      | (Bezier3(p0, p1, p2, p3) as s) :: rest ->
                          
  
negative.code:                |> Sg.trafo (Trafo3d.FromOrthoNormalBasis(V3d.IOO, V3d.OOI, V3d.OIO)  |> Mod.constant)
                 |> Sg.viewTrafo (viewTrafo   |> Mod.map CameraView.viewTrafo )
                 |> Sg.projTrafo (perspective |> Mod.map Frustum.projTrafo    )
           
                 |> Sg.fillMode fillMode
  
                 |> Sg.trafo (Trafo3d.FromOrthoNormalBasis(V3d.IOO, -V3d.OIO, -V3d.OOI)  |> Mod.constant)
  