module Polysemy.SequentialAccess.ByteString where
import qualified Polysemy.SequentialAccess as SA
import Data.ByteString ( ByteString )
import Numeric.Natural ( Natural )
type GetPosition = SA.GetPosition Natural
type ReadBytes = SA.Read Natural ByteString
type ReadToEnd = SA.Read SA.ToEnd ByteString
type Overwrite = SA.Overwrite ByteString
type Append = SA.Append ByteString
type Resize = SA.Resize Natural
type Seek = '[SA.Seek (SA.Absolute Natural), SA.Seek (SA.Relative Integer), SA.Seek (SA.FromEnd Integer)]
type Cursor = GetPosition ': Seek