-- | Feeder from Handle
feederFromHandle :: Handle -> IO Feeder
feederFromHandle h = return $ do
  bs <- BS.hGet h bufSize
  if BS.length bs > 0
    then return $ Just bs
    else do
    hClose h
    return Nothing
  where
    bufSize = 4096

-- | Feeder from File
feederFromHandle :: Handle -> IO Feeder
feederFromHandle h = return $ do
  bs <- BS.hGet h bufSize
  if BS.length bs > 0
    then return $ Just bs
    else do
    hClose h
    return Nothing
  where
    bufSize = 4096

-- | Feeder from File
feederFromHandle h = return $ do
  bs <- BS.hGet h bufSize
  if BS.length bs > 0
    then return $ Just bs
    else do
    hClose h
    return Nothing
  where
    bufSize = 4096

-- | Feeder from File