{-# LANGUAGE DeriveFunctor, DeriveFoldable, DeriveTraversable #-} module NanoVG.Internal.FixedVector where import Data.Foldable (Foldable) import Data.Traversable (Traversable) -- | Vector of 2 strict elements data V2 a = V2 !a !a deriving (Show,Read,Eq,Ord,Functor,Foldable,Traversable) -- | Vector of 3 strict elements data V3 a = V3 !a !a !a deriving (Show,Read,Eq,Ord,Functor,Foldable,Traversable) -- | Vector of 4 strict elements data V4 a = V4 !a !a !a !a deriving (Show,Read,Eq,Ord,Functor,Foldable,Traversable) -- | Type synonym for 2x3 matrices type M23 a = V2 (V3 a)