{-# OPTIONS_GHC -XArrows -XRecursiveDo#-} -- Test #2111 module Foo where foo = do { rec { x <- undefined -< x }; undefined -< x } bar1 = do { rec { x <- return ('a':x); }; putStrLn (take 20 x) } bar2 = mdo { rec { x <- return ('a':x); }; putStrLn (take 20 x) }