-- | Turn a 'Handle' into a 'Source'. The handle must be seekable.
handleSource :: MonadIO m => Handle -> Source m
handleSource h = Source $ \pos -> do
    liftIO $ hSeek h AbsoluteSeek (fromIntegral pos)
    fromHandle h

-- | Turn a lazy 'L.ByteString' into a 'Source'.
handleSource :: MonadIO m => Handle -> Source m
handleSource h = Source $ \pos -> do
    liftIO $ hSeek h AbsoluteSeek (fromIntegral pos)
    fromHandle h

-- | Turn a lazy 'L.ByteString' into a 'Source'.
handleSource h = Source $ \pos -> do
    liftIO $ hSeek h AbsoluteSeek (fromIntegral pos)
    fromHandle h

-- | Turn a lazy 'L.ByteString' into a 'Source'.