anchor.diff:              else
                   return AdaptiveFunc.Identity
           }
  -
  +    /// <summary> Gives a camera an option to move around laterally from
  +    /// the direction of the camera.
  +    /// A middle mouse button controls the functionality.</summary>
  +    /// <param name="mouse"> the mouse inputs (this is often pulled from the parent window)</param>
  +    /// <returns>An incremental function that takes a CameraView</returns>    
       let controlPan (m : IMouse) =
           let down = m.IsDown(MouseButtons.Middle)
           let location = m.Position |> Mod.map (fun pp -> pp.Position)
  
positive.code:                 else V2i.Zero
              ) w s
  
          let move = Mod.map2 (+) moveX moveY
  
          adaptive {
              let! m = move
              if m <> V2i.Zero then
                  return time |> Mod.stepTime (fun t dt (cam : CameraView)  ->
                      //printfn "%Ams" dt.TotalMilliseconds
                      let direction = float m.X * cam.Right + float m.Y * cam.Forward
                      let delta = 1.2 * dt.TotalSeconds * direction
  
                      cam.WithLocation(cam.Location + delta)
                  )
              else
                  return AdaptiveFunc.Identity
          }
  
      let controlLookAround (m : IMouse) =
          let down = m.IsDown(MouseButtons.Left)
          let location = m.Position |> Mod.map (fun pp -> pp.Position)
  
          adaptive {
              let! d = down
  
negative.code:                 return AdaptiveFunc.Identity
          }
  
      /// <summary> Gives a camera look controls, orbiting around a point. 
      /// Left mouse button controls the functionality.</summary>
      /// <param name="mouse"> the mouse inputs (this is often pulled from the parent window)</param>
      /// <returns>An incremental function that takes a CameraView</returns>
      let controlOrbitAround (mouse : IMouse) (center : IMod<V3d>) =
          let down = mouse.IsDown(MouseButtons.Left)
          let location = mouse.Position |> Mod.map (fun pp -> pp.Position)
  
          adaptive {
              let! d = down
  