combobuffer-0.1: src/Data/RingBuffer/SVec.hs
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE DeriveFoldable #-}
{-# OPTIONS_GHC -funbox-strict-fields #-}
-- | Strict vectors of doubles to length == 30
module Data.RingBuffer.SVec
where
import Prelude hiding (length)
import Data.RingBuffer.Class
import Data.RingBuffer.TGen
import Language.Haskell.TH (Type(..),mkName, TyVarBndr(..))
import Data.Foldable
$(mkVecFromTo 1 30 (ConT ''Double) [] "")
-- | Generate a 32-element polymorphic vector, maybe I should just use
-- Data.Vector?
$(mkVecFromTo 32 32 (VarT (mkName "a")) [PlainTV (mkName "a")] "Vec")
deriving instance Show a => Show (TVec32 a)
deriving instance Eq a => Eq (TVec32 a)
deriving instance Ord a => Ord (TVec32 a)
deriving instance Foldable (TVec32)