{- | In principle you can traverse through a lazy storable vector using repeated calls to @viewL@. However this needs a bit of pointer arrangement and allocation. This data structure makes the inner loop faster, that consists of traversing through a chunk. -} module Data.StorableVector.Lazy.Pointer ( Pointer, cons, viewL, switchL, ) where import Data.StorableVector.Lazy.PointerPrivate (Pointer(..), viewL, switchL, ) import qualified Data.StorableVector.Lazy as VL import Foreign.Storable (Storable) {-# INLINE cons #-} cons :: Storable a => VL.Vector a -> Pointer a cons = VL.pointer