Fast delay based on block lists. Blocks are arrays. They are part of Haskell 98. In contrast to ring buffers, block lists allow infinite look ahead.

- modulatedCore :: (C a, C v) => T a v -> Int -> T a -> T v -> T v
- modulated :: (C a, C v) => T a v -> Int -> T a -> T v -> T v
- type BlockList a = [Array Int a]
- listToBlocks :: Int -> T a -> BlockList a
- dropBlocksToList :: Int -> BlockList a -> T a
- propDrop :: Int -> Int -> [Int] -> Property
- dropSingleBlocksToList :: Int -> BlockList a -> T a
- suffixIndexes :: BlockList a -> [(Int, BlockList a)]

# Documentation

listToBlocks :: Int -> T a -> BlockList aSource

dropBlocksToList :: Int -> BlockList a -> T aSource

dropSingleBlocksToList :: Int -> BlockList a -> T aSource

Drop elements from a blocked list. The offset must lie in the leading block.

suffixIndexes :: BlockList a -> [(Int, BlockList a)]Source