stepModel :: ViewPort -> Float -> Model -> Model
stepModel _ d m =
  let cfg      = (m,d)
      st       = SimState m Set.empty Set.empty
      runS     = runSimulation >>> runReaderT
      (_, st') = runState (runS simulation cfg) st
  in  Set.difference (st' ^. processed) (st' ^. removed)
stepModel :: ViewPort -> Float -> Model -> Model
stepModel _ d m =
  let cfg      = (m,d)
      st       = SimState m Set.empty Set.empty
      runS     = runSimulation >>> runReaderT
      (_, st') = runState (runS simulation cfg) st
  in  Set.difference (st' ^. processed) (st' ^. removed)
stepModel _ d m =
  let cfg      = (m,d)
      st       = SimState m Set.empty Set.empty
      runS     = runSimulation >>> runReaderT
      (_, st') = runState (runS simulation cfg) st
  in  Set.difference (st' ^. processed) (st' ^. removed)