stdout :: MonadIO m => Folding (Of ByteString) m () -> m ()
stdout (Folding phi) = 
  phi (\(bs :> rest) -> 
         do x  <- liftIO (try (B.putStr bs))
            case x of
                Left (G.IOError { G.ioe_type  = G.ResourceVanished
                                , G.ioe_errno = Just ioe })
                     | Errno ioe == ePIPE
                         -> return ()
                Left  e  -> liftIO (throwIO e)
                Right () -> rest)
       join
       (\_ -> return ())
stdout :: MonadIO m => Folding (Of ByteString) m () -> m ()
stdout (Folding phi) = 
  phi (\(bs :> rest) -> 
         do x  <- liftIO (try (B.putStr bs))
            case x of
                Left (G.IOError { G.ioe_type  = G.ResourceVanished
                                , G.ioe_errno = Just ioe })
                     | Errno ioe == ePIPE
                         -> return ()
                Left  e  -> liftIO (throwIO e)
                Right () -> rest)
       join
       (\_ -> return ())
stdout (Folding phi) = 
  phi (\(bs :> rest) -> 
         do x  <- liftIO (try (B.putStr bs))
            case x of
                Left (G.IOError { G.ioe_type  = G.ResourceVanished
                                , G.ioe_errno = Just ioe })
                     | Errno ioe == ePIPE
                         -> return ()
                Left  e  -> liftIO (throwIO e)
                Right () -> rest)
       join
       (\_ -> return ())