I was playing polybridge 2 which has the improvement over the original game of having a deterministic physics engine, and was wondering if I could encode this requirement at a type level in Haskell. What we want is our tick function to be a group homomorphism between time deltas (with addition as its group operation) and state deltas where state deltas act on our representation of state. Since we are talking about time varying values this felt very FRP-y to me, so I'm sure someone has figured this stuff out. Because of this I'm really curious about what happens when we try to preserve these properties in FRP contexts. Naively it seems like all the things in FRP respect these laws, but I'd be interested to see if anybody has looked into this issue formally.
I was playing polybridge 2 which has the improvement over the original game of having a deterministic physics engine, and was wondering if I could encode this requirement at a type level in Haskell. What we want is our tick function to be a group homomorphism between time deltas (with addition as its group operation) and state deltas where state deltas act on our representation of state. Since we are talking about time varying values this felt very FRP-y to me, so I'm sure someone has figured this stuff out. Because of this I'm really curious about what happens when we try to preserve these properties in FRP contexts. Naively it seems like all the things in FRP respect these laws, but I'd be interested to see if anybody has looked into this issue formally.