{-# OPTIONS_GHC -Wall #-}
--{-# Language ExistentialQuantification #-}
--{-# Language GADTs #-}
module PlotTypes
( ListViewInfo(..)
, SignalTree
, Getter
) where
import Data.Time ( NominalDiffTime )
import qualified Data.Sequence as S
import qualified Data.Tree as Tree
type Getter a = Either (a -> Double) (S.Seq (a, Int, NominalDiffTime) -> [[(Double,Double)]])
-- | a tree of name/getter pairs
type SignalTree a = Tree.Forest (String, String, Maybe (Getter a))
data ListViewInfo a = ListViewInfo { lviName :: String
, lviType :: String
, lviGetter :: Maybe (Getter a)
, lviMarked :: Bool
}