Ticket #2 (new defect)
Opened 7 years ago
joinE not lazy enough
|Reported by:||camio||Owned by:||somebody|
This is an oldie. It is exemplified in the tutorial with the metronome example. It seems to be one step behind. Looking at the implementation of joinE:
-- Note, joinE should not be called with an infinite list of events that all -- occur at the same time. It can't decide which occurs first. joinE :: (Ord t) => EventG t (EventG t a) -> EventG t a joinE (Event (Future (Max MaxBound, _))) = mempty joinE (Event (Future (t0h, e `Stepper` ((Event (Future (Max MaxBound, _))))))) = adjustE t0h e joinE (Event (Future (t0h, e `Stepper` ee'@((Event (Future (t1h, _))))))) = happy (adjustE t0h e) t1h (adjustTopE t0h (joinE ee'))
we can see how it hast to look two events into the future.