anchor.diff:                      for p in appState.polygons do
                           let lines = 
                               Mod.custom (fun self -> 
  -                                let positions = (p.UnsafeInner :> IMod<_>).GetValue self
  -                                let lines = List.foldBack (fun (x:pmod<_>) s -> (x.UnsafeInner :> IMod<_>).GetValue self :: s) positions [] |> List.toArray
  +                                let positions = (p :> IMod<_>).GetValue self
  +                                let lines = List.foldBack (fun (x:pmod<_>) s -> (x :> IMod<_>).GetValue self :: s) positions [] |> List.toArray
                                   Helpers.lineLoopGeometry C4b.White lines
                            )
                           yield Sg.dynamic lines
  
positive.code:                                 |> Seq.toList
                          match nearbyRay with
                              | [] -> ()
                              | (p,bestPosition,d)::_ when d < Double.MaxValue && not !state.dragging -> 
                                  yield fun () -> 
                                      Mod.change state.hoverPosition (Some (p, bestPosition)) 
                              | _ -> 
  
negative.code:         type Polygons = pset<Polygon>
  
          type Scene = { polygons : Polygons }
  
          type State = { polygon : pmod<list<V3f>>; unique : Scope.Unique; 
                         hoverPosition : IModRef<Option<Polygon * pmod<V3f>>>; 
                         selectedPoint : ref<Option<pmod<V3f>>>
  