{- | We provide a way to specify a set of columns that matches the tuple structure of a certain graph type. -} module Graphics.Gnuplot.Value.ColumnSet (T(Cons), atom, pair, triple, quadruple, ) where import qualified Graphics.Gnuplot.Value.Atom as Atom newtype T a = Cons [Int] atom :: Atom.C a => Int -> T a atom i = Cons [i] pair :: T a -> T b -> T (a,b) pair (Cons ai) (Cons bi) = Cons (ai++bi) triple :: T a -> T b -> T c -> T (a,b,c) triple (Cons ai) (Cons bi) (Cons ci) = Cons (ai++bi++ci) quadruple :: T a -> T b -> T c -> T d -> T (a,b,c,d) quadruple (Cons ai) (Cons bi) (Cons ci) (Cons di) = Cons (ai++bi++ci++di)