
Hi, When testing this netwire sample program {-# LANGUAGE Arrows #-} import Control.Wire mainWire :: WireP () Double mainWire = proc i -> do rec value <- integral_ 0.0 -< oldValue oldValue <- delay 1.0 -< value returnA -< value main = do wireLoop mainWire wireLoop :: WireP () Double -> IO () wireLoop w' = do let (mx, w) = stepWireP w' 1.0 () case mx of Left ex -> putStrLn $ "Inhibited:" ++ (show ex) Right x -> putStrLn $ "Produced:" ++ (show x) wireLoop w I get this output: NetwireTest: <<loop>> But there should be not infinite loop, should there? Regards, Nathan

Nathan Hüsken
Hi, When testing this netwire sample program
[...]
mainWire :: WireP () Double mainWire = proc i -> do rec value <- integral_ 0.0 -< oldValue oldValue <- delay 1.0 -< value returnA -< value
[...]
I get this output: NetwireTest: <<loop>>
But there should be not infinite loop, should there?
That was a bug in the ArrowLoop implementation. It's fixed now in version 4.0.1. Thanks for reporting. Greets, Ertugrul -- Not to be or to be and (not to be or to be and (not to be or to be and (not to be or to be and ... that is the list monad.
participants (2)
-
Ertugrul Söylemez
-
Nathan Hüsken