fromHandleLn ::  IO.Handle -> Folding (Of ByteString) IO ()
fromHandleLn h = Folding $ \construct wrap done -> 
  wrap $ let go = do eof <- IO.hIsEOF h
                     if eof then return (done ()) 
                            else do bs <- B.hGetLine h 
                                    return (construct (bs :> wrap go))
         in go
fromHandleLn ::  IO.Handle -> Folding (Of ByteString) IO ()
fromHandleLn h = Folding $ \construct wrap done -> 
  wrap $ let go = do eof <- IO.hIsEOF h
                     if eof then return (done ()) 
                            else do bs <- B.hGetLine h 
                                    return (construct (bs :> wrap go))
         in go
fromHandleLn h = Folding $ \construct wrap done -> 
  wrap $ let go = do eof <- IO.hIsEOF h
                     if eof then return (done ()) 
                            else do bs <- B.hGetLine h 
                                    return (construct (bs :> wrap go))
         in go