Sto imparando Haskell e Yampa al momento e ho una domanda sulla funzione di riattivazione.Differenza di tempo nella funzione di rincorsa (senso) in Yampa
reactimate :: IO a -- init
-> (Bool -> IO (DTime, Maybe a)) -- sense
-> (Bool -> b -> IO Bool) -- actuate
-> SF a b -- signal function
-> IO()
Come si può vedere nella firma tipo, parte dell'output per la funzione di senso è la differenza di tempo tra la chiamata corrente e precedente della funzione. Negli esempi che ho visto, questa differenza di orario è calcolata "manualmente" all'interno del senso, usando un IORef per mantenere il valore della chiamata precedente.
Sembra strano che sia necessario tenere traccia della differenza di fuso orario utilizzando uno stato esterno, perché questo calcolo non viene eseguito nella funzione di riattivazione? È un IORef un buon modo per gestirlo?