{-# OPTIONS_GHC -threaded #-}
{-# LANGUAGE FlexibleInstances #-}
module DobutokO.Sound.Effects.Specs where
import Numeric (showFFloat)
data Frequency a = FHz a | FkHz a deriving Eq
instance Show (Frequency Float) where
show (FHz x) = showFFloat Nothing x " "
show (FkHz x) = showFFloat Nothing x "k "
type Freq1 = Frequency Float
frequency1 :: Freq1 -> Float
frequency1 (FHz x) = x
frequency1 (FkHz x) = 1000.0 * x
data Width a = H a | K a | O a | Q a deriving Eq
instance Show (Width Float) where
show (H x) = showFFloat Nothing x "h"
show (K x) = showFFloat Nothing x "k"
show (O x) = showFFloat Nothing x "o"
show (Q x) = showFFloat Nothing x "q"
type Width1 = Width Float