{-# LANGUAGE RecursiveDo #-}
module RBBug where
import Reactive.Banana
import Reactive.Banana.Frameworks
data State = State { stateCounter :: Int }
test :: Int -> IO ()
test n = do
compile $ network n
return ()
network :: Frameworks t => Int -> Moment t ()
network 1 = mdo
let state = pure (State 0) -- switchB (pure (State 0)) never
positivityChanges <- changes isPositive
reactimate' (fmap (fmap print) positivityChanges)
let isPositive = fmap ((>= 0) . stateCounter) state
return ()
network 2 = mdo
let b = stepper (State 0) e
e <- execute $ (\a -> FrameworksMoment $ return a) <$> (b <@ never)
return ()