{-# LANGUAGE GADTs #-}
{-# OPTIONS_GHC -Wall #-}
module Streaming.FFT.Types
(
Signal(..)
, Shift(..)
, Bin(..)
, Transform(..)
, Window(..)
) where
import Control.Monad.Primitive
import Data.Complex
import Data.Primitive.PrimArray
import Prelude hiding (undefined, Rational)
newtype Window m e = Window
{ getWindow :: MutablePrimArray (PrimState m) (Complex e) }
newtype Transform m e = Transform
{ getTransform :: MutablePrimArray (PrimState m) (Complex e) }
newtype Signal e = Signal Int
newtype Shift e = Shift Int
newtype Bin e = Bin Int