{- | A special vector type that represents a time-sequence of samples. This way we can distinguish safely between LLVM vectors used for parallel signals and pipelines and those used for chunky processing of scalar signals. For the chunky processing this data type allows us to derive the factor from the type that time constants have to be multiplied with. -} module Synthesizer.LLVM.SerialVector where import qualified Data.TypeLevel.Num.Sets as TypeSet import qualified LLVM.Core as LLVM replicate :: (TypeSet.Pos n) => a -> LLVM.Vector n a replicate x = LLVM.vector [x]