{-# 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 (Int -> V2 a -> ShowS
[V2 a] -> ShowS
V2 a -> String
(Int -> V2 a -> ShowS)
-> (V2 a -> String) -> ([V2 a] -> ShowS) -> Show (V2 a)
forall a. Show a => Int -> V2 a -> ShowS
forall a. Show a => [V2 a] -> ShowS
forall a. Show a => V2 a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2 a] -> ShowS
$cshowList :: forall a. Show a => [V2 a] -> ShowS
show :: V2 a -> String
$cshow :: forall a. Show a => V2 a -> String
showsPrec :: Int -> V2 a -> ShowS
$cshowsPrec :: forall a. Show a => Int -> V2 a -> ShowS
Show,ReadPrec [V2 a]
ReadPrec (V2 a)
Int -> ReadS (V2 a)
ReadS [V2 a]
(Int -> ReadS (V2 a))
-> ReadS [V2 a]
-> ReadPrec (V2 a)
-> ReadPrec [V2 a]
-> Read (V2 a)
forall a. Read a => ReadPrec [V2 a]
forall a. Read a => ReadPrec (V2 a)
forall a. Read a => Int -> ReadS (V2 a)
forall a. Read a => ReadS [V2 a]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [V2 a]
$creadListPrec :: forall a. Read a => ReadPrec [V2 a]
readPrec :: ReadPrec (V2 a)
$creadPrec :: forall a. Read a => ReadPrec (V2 a)
readList :: ReadS [V2 a]
$creadList :: forall a. Read a => ReadS [V2 a]
readsPrec :: Int -> ReadS (V2 a)
$creadsPrec :: forall a. Read a => Int -> ReadS (V2 a)
Read,V2 a -> V2 a -> Bool
(V2 a -> V2 a -> Bool) -> (V2 a -> V2 a -> Bool) -> Eq (V2 a)
forall a. Eq a => V2 a -> V2 a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2 a -> V2 a -> Bool
$c/= :: forall a. Eq a => V2 a -> V2 a -> Bool
== :: V2 a -> V2 a -> Bool
$c== :: forall a. Eq a => V2 a -> V2 a -> Bool
Eq,Eq (V2 a)
Eq (V2 a)
-> (V2 a -> V2 a -> Ordering)
-> (V2 a -> V2 a -> Bool)
-> (V2 a -> V2 a -> Bool)
-> (V2 a -> V2 a -> Bool)
-> (V2 a -> V2 a -> Bool)
-> (V2 a -> V2 a -> V2 a)
-> (V2 a -> V2 a -> V2 a)
-> Ord (V2 a)
V2 a -> V2 a -> Bool
V2 a -> V2 a -> Ordering
V2 a -> V2 a -> V2 a
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
forall a. Ord a => Eq (V2 a)
forall a. Ord a => V2 a -> V2 a -> Bool
forall a. Ord a => V2 a -> V2 a -> Ordering
forall a. Ord a => V2 a -> V2 a -> V2 a
min :: V2 a -> V2 a -> V2 a
$cmin :: forall a. Ord a => V2 a -> V2 a -> V2 a
max :: V2 a -> V2 a -> V2 a
$cmax :: forall a. Ord a => V2 a -> V2 a -> V2 a
>= :: V2 a -> V2 a -> Bool
$c>= :: forall a. Ord a => V2 a -> V2 a -> Bool
> :: V2 a -> V2 a -> Bool
$c> :: forall a. Ord a => V2 a -> V2 a -> Bool
<= :: V2 a -> V2 a -> Bool
$c<= :: forall a. Ord a => V2 a -> V2 a -> Bool
< :: V2 a -> V2 a -> Bool
$c< :: forall a. Ord a => V2 a -> V2 a -> Bool
compare :: V2 a -> V2 a -> Ordering
$ccompare :: forall a. Ord a => V2 a -> V2 a -> Ordering
$cp1Ord :: forall a. Ord a => Eq (V2 a)
Ord,a -> V2 b -> V2 a
(a -> b) -> V2 a -> V2 b
(forall a b. (a -> b) -> V2 a -> V2 b)
-> (forall a b. a -> V2 b -> V2 a) -> Functor V2
forall a b. a -> V2 b -> V2 a
forall a b. (a -> b) -> V2 a -> V2 b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: a -> V2 b -> V2 a
$c<$ :: forall a b. a -> V2 b -> V2 a
fmap :: (a -> b) -> V2 a -> V2 b
$cfmap :: forall a b. (a -> b) -> V2 a -> V2 b
Functor,V2 a -> Bool
(a -> m) -> V2 a -> m
(a -> b -> b) -> b -> V2 a -> b
(forall m. Monoid m => V2 m -> m)
-> (forall m a. Monoid m => (a -> m) -> V2 a -> m)
-> (forall m a. Monoid m => (a -> m) -> V2 a -> m)
-> (forall a b. (a -> b -> b) -> b -> V2 a -> b)
-> (forall a b. (a -> b -> b) -> b -> V2 a -> b)
-> (forall b a. (b -> a -> b) -> b -> V2 a -> b)
-> (forall b a. (b -> a -> b) -> b -> V2 a -> b)
-> (forall a. (a -> a -> a) -> V2 a -> a)
-> (forall a. (a -> a -> a) -> V2 a -> a)
-> (forall a. V2 a -> [a])
-> (forall a. V2 a -> Bool)
-> (forall a. V2 a -> Int)
-> (forall a. Eq a => a -> V2 a -> Bool)
-> (forall a. Ord a => V2 a -> a)
-> (forall a. Ord a => V2 a -> a)
-> (forall a. Num a => V2 a -> a)
-> (forall a. Num a => V2 a -> a)
-> Foldable V2
forall a. Eq a => a -> V2 a -> Bool
forall a. Num a => V2 a -> a
forall a. Ord a => V2 a -> a
forall m. Monoid m => V2 m -> m
forall a. V2 a -> Bool
forall a. V2 a -> Int
forall a. V2 a -> [a]
forall a. (a -> a -> a) -> V2 a -> a
forall m a. Monoid m => (a -> m) -> V2 a -> m
forall b a. (b -> a -> b) -> b -> V2 a -> b
forall a b. (a -> b -> b) -> b -> V2 a -> b
forall (t :: * -> *).
(forall m. Monoid m => t m -> m)
-> (forall m a. Monoid m => (a -> m) -> t a -> m)
-> (forall m a. Monoid m => (a -> m) -> t a -> m)
-> (forall a b. (a -> b -> b) -> b -> t a -> b)
-> (forall a b. (a -> b -> b) -> b -> t a -> b)
-> (forall b a. (b -> a -> b) -> b -> t a -> b)
-> (forall b a. (b -> a -> b) -> b -> t a -> b)
-> (forall a. (a -> a -> a) -> t a -> a)
-> (forall a. (a -> a -> a) -> t a -> a)
-> (forall a. t a -> [a])
-> (forall a. t a -> Bool)
-> (forall a. t a -> Int)
-> (forall a. Eq a => a -> t a -> Bool)
-> (forall a. Ord a => t a -> a)
-> (forall a. Ord a => t a -> a)
-> (forall a. Num a => t a -> a)
-> (forall a. Num a => t a -> a)
-> Foldable t
product :: V2 a -> a
$cproduct :: forall a. Num a => V2 a -> a
sum :: V2 a -> a
$csum :: forall a. Num a => V2 a -> a
minimum :: V2 a -> a
$cminimum :: forall a. Ord a => V2 a -> a
maximum :: V2 a -> a
$cmaximum :: forall a. Ord a => V2 a -> a
elem :: a -> V2 a -> Bool
$celem :: forall a. Eq a => a -> V2 a -> Bool
length :: V2 a -> Int
$clength :: forall a. V2 a -> Int
null :: V2 a -> Bool
$cnull :: forall a. V2 a -> Bool
toList :: V2 a -> [a]
$ctoList :: forall a. V2 a -> [a]
foldl1 :: (a -> a -> a) -> V2 a -> a
$cfoldl1 :: forall a. (a -> a -> a) -> V2 a -> a
foldr1 :: (a -> a -> a) -> V2 a -> a
$cfoldr1 :: forall a. (a -> a -> a) -> V2 a -> a
foldl' :: (b -> a -> b) -> b -> V2 a -> b
$cfoldl' :: forall b a. (b -> a -> b) -> b -> V2 a -> b
foldl :: (b -> a -> b) -> b -> V2 a -> b
$cfoldl :: forall b a. (b -> a -> b) -> b -> V2 a -> b
foldr' :: (a -> b -> b) -> b -> V2 a -> b
$cfoldr' :: forall a b. (a -> b -> b) -> b -> V2 a -> b
foldr :: (a -> b -> b) -> b -> V2 a -> b
$cfoldr :: forall a b. (a -> b -> b) -> b -> V2 a -> b
foldMap' :: (a -> m) -> V2 a -> m
$cfoldMap' :: forall m a. Monoid m => (a -> m) -> V2 a -> m
foldMap :: (a -> m) -> V2 a -> m
$cfoldMap :: forall m a. Monoid m => (a -> m) -> V2 a -> m
fold :: V2 m -> m
$cfold :: forall m. Monoid m => V2 m -> m
Foldable,Functor V2
Foldable V2
Functor V2
-> Foldable V2
-> (forall (f :: * -> *) a b.
    Applicative f =>
    (a -> f b) -> V2 a -> f (V2 b))
-> (forall (f :: * -> *) a. Applicative f => V2 (f a) -> f (V2 a))
-> (forall (m :: * -> *) a b.
    Monad m =>
    (a -> m b) -> V2 a -> m (V2 b))
-> (forall (m :: * -> *) a. Monad m => V2 (m a) -> m (V2 a))
-> Traversable V2
(a -> f b) -> V2 a -> f (V2 b)
forall (t :: * -> *).
Functor t
-> Foldable t
-> (forall (f :: * -> *) a b.
    Applicative f =>
    (a -> f b) -> t a -> f (t b))
-> (forall (f :: * -> *) a. Applicative f => t (f a) -> f (t a))
-> (forall (m :: * -> *) a b.
    Monad m =>
    (a -> m b) -> t a -> m (t b))
-> (forall (m :: * -> *) a. Monad m => t (m a) -> m (t a))
-> Traversable t
forall (m :: * -> *) a. Monad m => V2 (m a) -> m (V2 a)
forall (f :: * -> *) a. Applicative f => V2 (f a) -> f (V2 a)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> V2 a -> m (V2 b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> V2 a -> f (V2 b)
sequence :: V2 (m a) -> m (V2 a)
$csequence :: forall (m :: * -> *) a. Monad m => V2 (m a) -> m (V2 a)
mapM :: (a -> m b) -> V2 a -> m (V2 b)
$cmapM :: forall (m :: * -> *) a b. Monad m => (a -> m b) -> V2 a -> m (V2 b)
sequenceA :: V2 (f a) -> f (V2 a)
$csequenceA :: forall (f :: * -> *) a. Applicative f => V2 (f a) -> f (V2 a)
traverse :: (a -> f b) -> V2 a -> f (V2 b)
$ctraverse :: forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> V2 a -> f (V2 b)
$cp2Traversable :: Foldable V2
$cp1Traversable :: Functor V2
Traversable)

-- | Vector of 3 strict elements
data V3 a =
  V3 !a
     !a
     !a
  deriving (Int -> V3 a -> ShowS
[V3 a] -> ShowS
V3 a -> String
(Int -> V3 a -> ShowS)
-> (V3 a -> String) -> ([V3 a] -> ShowS) -> Show (V3 a)
forall a. Show a => Int -> V3 a -> ShowS
forall a. Show a => [V3 a] -> ShowS
forall a. Show a => V3 a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V3 a] -> ShowS
$cshowList :: forall a. Show a => [V3 a] -> ShowS
show :: V3 a -> String
$cshow :: forall a. Show a => V3 a -> String
showsPrec :: Int -> V3 a -> ShowS
$cshowsPrec :: forall a. Show a => Int -> V3 a -> ShowS
Show,ReadPrec [V3 a]
ReadPrec (V3 a)
Int -> ReadS (V3 a)
ReadS [V3 a]
(Int -> ReadS (V3 a))
-> ReadS [V3 a]
-> ReadPrec (V3 a)
-> ReadPrec [V3 a]
-> Read (V3 a)
forall a. Read a => ReadPrec [V3 a]
forall a. Read a => ReadPrec (V3 a)
forall a. Read a => Int -> ReadS (V3 a)
forall a. Read a => ReadS [V3 a]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [V3 a]
$creadListPrec :: forall a. Read a => ReadPrec [V3 a]
readPrec :: ReadPrec (V3 a)
$creadPrec :: forall a. Read a => ReadPrec (V3 a)
readList :: ReadS [V3 a]
$creadList :: forall a. Read a => ReadS [V3 a]
readsPrec :: Int -> ReadS (V3 a)
$creadsPrec :: forall a. Read a => Int -> ReadS (V3 a)
Read,V3 a -> V3 a -> Bool
(V3 a -> V3 a -> Bool) -> (V3 a -> V3 a -> Bool) -> Eq (V3 a)
forall a. Eq a => V3 a -> V3 a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V3 a -> V3 a -> Bool
$c/= :: forall a. Eq a => V3 a -> V3 a -> Bool
== :: V3 a -> V3 a -> Bool
$c== :: forall a. Eq a => V3 a -> V3 a -> Bool
Eq,Eq (V3 a)
Eq (V3 a)
-> (V3 a -> V3 a -> Ordering)
-> (V3 a -> V3 a -> Bool)
-> (V3 a -> V3 a -> Bool)
-> (V3 a -> V3 a -> Bool)
-> (V3 a -> V3 a -> Bool)
-> (V3 a -> V3 a -> V3 a)
-> (V3 a -> V3 a -> V3 a)
-> Ord (V3 a)
V3 a -> V3 a -> Bool
V3 a -> V3 a -> Ordering
V3 a -> V3 a -> V3 a
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
forall a. Ord a => Eq (V3 a)
forall a. Ord a => V3 a -> V3 a -> Bool
forall a. Ord a => V3 a -> V3 a -> Ordering
forall a. Ord a => V3 a -> V3 a -> V3 a
min :: V3 a -> V3 a -> V3 a
$cmin :: forall a. Ord a => V3 a -> V3 a -> V3 a
max :: V3 a -> V3 a -> V3 a
$cmax :: forall a. Ord a => V3 a -> V3 a -> V3 a
>= :: V3 a -> V3 a -> Bool
$c>= :: forall a. Ord a => V3 a -> V3 a -> Bool
> :: V3 a -> V3 a -> Bool
$c> :: forall a. Ord a => V3 a -> V3 a -> Bool
<= :: V3 a -> V3 a -> Bool
$c<= :: forall a. Ord a => V3 a -> V3 a -> Bool
< :: V3 a -> V3 a -> Bool
$c< :: forall a. Ord a => V3 a -> V3 a -> Bool
compare :: V3 a -> V3 a -> Ordering
$ccompare :: forall a. Ord a => V3 a -> V3 a -> Ordering
$cp1Ord :: forall a. Ord a => Eq (V3 a)
Ord,a -> V3 b -> V3 a
(a -> b) -> V3 a -> V3 b
(forall a b. (a -> b) -> V3 a -> V3 b)
-> (forall a b. a -> V3 b -> V3 a) -> Functor V3
forall a b. a -> V3 b -> V3 a
forall a b. (a -> b) -> V3 a -> V3 b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: a -> V3 b -> V3 a
$c<$ :: forall a b. a -> V3 b -> V3 a
fmap :: (a -> b) -> V3 a -> V3 b
$cfmap :: forall a b. (a -> b) -> V3 a -> V3 b
Functor,V3 a -> Bool
(a -> m) -> V3 a -> m
(a -> b -> b) -> b -> V3 a -> b
(forall m. Monoid m => V3 m -> m)
-> (forall m a. Monoid m => (a -> m) -> V3 a -> m)
-> (forall m a. Monoid m => (a -> m) -> V3 a -> m)
-> (forall a b. (a -> b -> b) -> b -> V3 a -> b)
-> (forall a b. (a -> b -> b) -> b -> V3 a -> b)
-> (forall b a. (b -> a -> b) -> b -> V3 a -> b)
-> (forall b a. (b -> a -> b) -> b -> V3 a -> b)
-> (forall a. (a -> a -> a) -> V3 a -> a)
-> (forall a. (a -> a -> a) -> V3 a -> a)
-> (forall a. V3 a -> [a])
-> (forall a. V3 a -> Bool)
-> (forall a. V3 a -> Int)
-> (forall a. Eq a => a -> V3 a -> Bool)
-> (forall a. Ord a => V3 a -> a)
-> (forall a. Ord a => V3 a -> a)
-> (forall a. Num a => V3 a -> a)
-> (forall a. Num a => V3 a -> a)
-> Foldable V3
forall a. Eq a => a -> V3 a -> Bool
forall a. Num a => V3 a -> a
forall a. Ord a => V3 a -> a
forall m. Monoid m => V3 m -> m
forall a. V3 a -> Bool
forall a. V3 a -> Int
forall a. V3 a -> [a]
forall a. (a -> a -> a) -> V3 a -> a
forall m a. Monoid m => (a -> m) -> V3 a -> m
forall b a. (b -> a -> b) -> b -> V3 a -> b
forall a b. (a -> b -> b) -> b -> V3 a -> b
forall (t :: * -> *).
(forall m. Monoid m => t m -> m)
-> (forall m a. Monoid m => (a -> m) -> t a -> m)
-> (forall m a. Monoid m => (a -> m) -> t a -> m)
-> (forall a b. (a -> b -> b) -> b -> t a -> b)
-> (forall a b. (a -> b -> b) -> b -> t a -> b)
-> (forall b a. (b -> a -> b) -> b -> t a -> b)
-> (forall b a. (b -> a -> b) -> b -> t a -> b)
-> (forall a. (a -> a -> a) -> t a -> a)
-> (forall a. (a -> a -> a) -> t a -> a)
-> (forall a. t a -> [a])
-> (forall a. t a -> Bool)
-> (forall a. t a -> Int)
-> (forall a. Eq a => a -> t a -> Bool)
-> (forall a. Ord a => t a -> a)
-> (forall a. Ord a => t a -> a)
-> (forall a. Num a => t a -> a)
-> (forall a. Num a => t a -> a)
-> Foldable t
product :: V3 a -> a
$cproduct :: forall a. Num a => V3 a -> a
sum :: V3 a -> a
$csum :: forall a. Num a => V3 a -> a
minimum :: V3 a -> a
$cminimum :: forall a. Ord a => V3 a -> a
maximum :: V3 a -> a
$cmaximum :: forall a. Ord a => V3 a -> a
elem :: a -> V3 a -> Bool
$celem :: forall a. Eq a => a -> V3 a -> Bool
length :: V3 a -> Int
$clength :: forall a. V3 a -> Int
null :: V3 a -> Bool
$cnull :: forall a. V3 a -> Bool
toList :: V3 a -> [a]
$ctoList :: forall a. V3 a -> [a]
foldl1 :: (a -> a -> a) -> V3 a -> a
$cfoldl1 :: forall a. (a -> a -> a) -> V3 a -> a
foldr1 :: (a -> a -> a) -> V3 a -> a
$cfoldr1 :: forall a. (a -> a -> a) -> V3 a -> a
foldl' :: (b -> a -> b) -> b -> V3 a -> b
$cfoldl' :: forall b a. (b -> a -> b) -> b -> V3 a -> b
foldl :: (b -> a -> b) -> b -> V3 a -> b
$cfoldl :: forall b a. (b -> a -> b) -> b -> V3 a -> b
foldr' :: (a -> b -> b) -> b -> V3 a -> b
$cfoldr' :: forall a b. (a -> b -> b) -> b -> V3 a -> b
foldr :: (a -> b -> b) -> b -> V3 a -> b
$cfoldr :: forall a b. (a -> b -> b) -> b -> V3 a -> b
foldMap' :: (a -> m) -> V3 a -> m
$cfoldMap' :: forall m a. Monoid m => (a -> m) -> V3 a -> m
foldMap :: (a -> m) -> V3 a -> m
$cfoldMap :: forall m a. Monoid m => (a -> m) -> V3 a -> m
fold :: V3 m -> m
$cfold :: forall m. Monoid m => V3 m -> m
Foldable,Functor V3
Foldable V3
Functor V3
-> Foldable V3
-> (forall (f :: * -> *) a b.
    Applicative f =>
    (a -> f b) -> V3 a -> f (V3 b))
-> (forall (f :: * -> *) a. Applicative f => V3 (f a) -> f (V3 a))
-> (forall (m :: * -> *) a b.
    Monad m =>
    (a -> m b) -> V3 a -> m (V3 b))
-> (forall (m :: * -> *) a. Monad m => V3 (m a) -> m (V3 a))
-> Traversable V3
(a -> f b) -> V3 a -> f (V3 b)
forall (t :: * -> *).
Functor t
-> Foldable t
-> (forall (f :: * -> *) a b.
    Applicative f =>
    (a -> f b) -> t a -> f (t b))
-> (forall (f :: * -> *) a. Applicative f => t (f a) -> f (t a))
-> (forall (m :: * -> *) a b.
    Monad m =>
    (a -> m b) -> t a -> m (t b))
-> (forall (m :: * -> *) a. Monad m => t (m a) -> m (t a))
-> Traversable t
forall (m :: * -> *) a. Monad m => V3 (m a) -> m (V3 a)
forall (f :: * -> *) a. Applicative f => V3 (f a) -> f (V3 a)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> V3 a -> m (V3 b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> V3 a -> f (V3 b)
sequence :: V3 (m a) -> m (V3 a)
$csequence :: forall (m :: * -> *) a. Monad m => V3 (m a) -> m (V3 a)
mapM :: (a -> m b) -> V3 a -> m (V3 b)
$cmapM :: forall (m :: * -> *) a b. Monad m => (a -> m b) -> V3 a -> m (V3 b)
sequenceA :: V3 (f a) -> f (V3 a)
$csequenceA :: forall (f :: * -> *) a. Applicative f => V3 (f a) -> f (V3 a)
traverse :: (a -> f b) -> V3 a -> f (V3 b)
$ctraverse :: forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> V3 a -> f (V3 b)
$cp2Traversable :: Foldable V3
$cp1Traversable :: Functor V3
Traversable)

-- | Vector of 4 strict elements
data V4 a =
  V4 !a
     !a
     !a
     !a
  deriving (Int -> V4 a -> ShowS
[V4 a] -> ShowS
V4 a -> String
(Int -> V4 a -> ShowS)
-> (V4 a -> String) -> ([V4 a] -> ShowS) -> Show (V4 a)
forall a. Show a => Int -> V4 a -> ShowS
forall a. Show a => [V4 a] -> ShowS
forall a. Show a => V4 a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V4 a] -> ShowS
$cshowList :: forall a. Show a => [V4 a] -> ShowS
show :: V4 a -> String
$cshow :: forall a. Show a => V4 a -> String
showsPrec :: Int -> V4 a -> ShowS
$cshowsPrec :: forall a. Show a => Int -> V4 a -> ShowS
Show,ReadPrec [V4 a]
ReadPrec (V4 a)
Int -> ReadS (V4 a)
ReadS [V4 a]
(Int -> ReadS (V4 a))
-> ReadS [V4 a]
-> ReadPrec (V4 a)
-> ReadPrec [V4 a]
-> Read (V4 a)
forall a. Read a => ReadPrec [V4 a]
forall a. Read a => ReadPrec (V4 a)
forall a. Read a => Int -> ReadS (V4 a)
forall a. Read a => ReadS [V4 a]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [V4 a]
$creadListPrec :: forall a. Read a => ReadPrec [V4 a]
readPrec :: ReadPrec (V4 a)
$creadPrec :: forall a. Read a => ReadPrec (V4 a)
readList :: ReadS [V4 a]
$creadList :: forall a. Read a => ReadS [V4 a]
readsPrec :: Int -> ReadS (V4 a)
$creadsPrec :: forall a. Read a => Int -> ReadS (V4 a)
Read,V4 a -> V4 a -> Bool
(V4 a -> V4 a -> Bool) -> (V4 a -> V4 a -> Bool) -> Eq (V4 a)
forall a. Eq a => V4 a -> V4 a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V4 a -> V4 a -> Bool
$c/= :: forall a. Eq a => V4 a -> V4 a -> Bool
== :: V4 a -> V4 a -> Bool
$c== :: forall a. Eq a => V4 a -> V4 a -> Bool
Eq,Eq (V4 a)
Eq (V4 a)
-> (V4 a -> V4 a -> Ordering)
-> (V4 a -> V4 a -> Bool)
-> (V4 a -> V4 a -> Bool)
-> (V4 a -> V4 a -> Bool)
-> (V4 a -> V4 a -> Bool)
-> (V4 a -> V4 a -> V4 a)
-> (V4 a -> V4 a -> V4 a)
-> Ord (V4 a)
V4 a -> V4 a -> Bool
V4 a -> V4 a -> Ordering
V4 a -> V4 a -> V4 a
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
forall a. Ord a => Eq (V4 a)
forall a. Ord a => V4 a -> V4 a -> Bool
forall a. Ord a => V4 a -> V4 a -> Ordering
forall a. Ord a => V4 a -> V4 a -> V4 a
min :: V4 a -> V4 a -> V4 a
$cmin :: forall a. Ord a => V4 a -> V4 a -> V4 a
max :: V4 a -> V4 a -> V4 a
$cmax :: forall a. Ord a => V4 a -> V4 a -> V4 a
>= :: V4 a -> V4 a -> Bool
$c>= :: forall a. Ord a => V4 a -> V4 a -> Bool
> :: V4 a -> V4 a -> Bool
$c> :: forall a. Ord a => V4 a -> V4 a -> Bool
<= :: V4 a -> V4 a -> Bool
$c<= :: forall a. Ord a => V4 a -> V4 a -> Bool
< :: V4 a -> V4 a -> Bool
$c< :: forall a. Ord a => V4 a -> V4 a -> Bool
compare :: V4 a -> V4 a -> Ordering
$ccompare :: forall a. Ord a => V4 a -> V4 a -> Ordering
$cp1Ord :: forall a. Ord a => Eq (V4 a)
Ord,a -> V4 b -> V4 a
(a -> b) -> V4 a -> V4 b
(forall a b. (a -> b) -> V4 a -> V4 b)
-> (forall a b. a -> V4 b -> V4 a) -> Functor V4
forall a b. a -> V4 b -> V4 a
forall a b. (a -> b) -> V4 a -> V4 b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: a -> V4 b -> V4 a
$c<$ :: forall a b. a -> V4 b -> V4 a
fmap :: (a -> b) -> V4 a -> V4 b
$cfmap :: forall a b. (a -> b) -> V4 a -> V4 b
Functor,V4 a -> Bool
(a -> m) -> V4 a -> m
(a -> b -> b) -> b -> V4 a -> b
(forall m. Monoid m => V4 m -> m)
-> (forall m a. Monoid m => (a -> m) -> V4 a -> m)
-> (forall m a. Monoid m => (a -> m) -> V4 a -> m)
-> (forall a b. (a -> b -> b) -> b -> V4 a -> b)
-> (forall a b. (a -> b -> b) -> b -> V4 a -> b)
-> (forall b a. (b -> a -> b) -> b -> V4 a -> b)
-> (forall b a. (b -> a -> b) -> b -> V4 a -> b)
-> (forall a. (a -> a -> a) -> V4 a -> a)
-> (forall a. (a -> a -> a) -> V4 a -> a)
-> (forall a. V4 a -> [a])
-> (forall a. V4 a -> Bool)
-> (forall a. V4 a -> Int)
-> (forall a. Eq a => a -> V4 a -> Bool)
-> (forall a. Ord a => V4 a -> a)
-> (forall a. Ord a => V4 a -> a)
-> (forall a. Num a => V4 a -> a)
-> (forall a. Num a => V4 a -> a)
-> Foldable V4
forall a. Eq a => a -> V4 a -> Bool
forall a. Num a => V4 a -> a
forall a. Ord a => V4 a -> a
forall m. Monoid m => V4 m -> m
forall a. V4 a -> Bool
forall a. V4 a -> Int
forall a. V4 a -> [a]
forall a. (a -> a -> a) -> V4 a -> a
forall m a. Monoid m => (a -> m) -> V4 a -> m
forall b a. (b -> a -> b) -> b -> V4 a -> b
forall a b. (a -> b -> b) -> b -> V4 a -> b
forall (t :: * -> *).
(forall m. Monoid m => t m -> m)
-> (forall m a. Monoid m => (a -> m) -> t a -> m)
-> (forall m a. Monoid m => (a -> m) -> t a -> m)
-> (forall a b. (a -> b -> b) -> b -> t a -> b)
-> (forall a b. (a -> b -> b) -> b -> t a -> b)
-> (forall b a. (b -> a -> b) -> b -> t a -> b)
-> (forall b a. (b -> a -> b) -> b -> t a -> b)
-> (forall a. (a -> a -> a) -> t a -> a)
-> (forall a. (a -> a -> a) -> t a -> a)
-> (forall a. t a -> [a])
-> (forall a. t a -> Bool)
-> (forall a. t a -> Int)
-> (forall a. Eq a => a -> t a -> Bool)
-> (forall a. Ord a => t a -> a)
-> (forall a. Ord a => t a -> a)
-> (forall a. Num a => t a -> a)
-> (forall a. Num a => t a -> a)
-> Foldable t
product :: V4 a -> a
$cproduct :: forall a. Num a => V4 a -> a
sum :: V4 a -> a
$csum :: forall a. Num a => V4 a -> a
minimum :: V4 a -> a
$cminimum :: forall a. Ord a => V4 a -> a
maximum :: V4 a -> a
$cmaximum :: forall a. Ord a => V4 a -> a
elem :: a -> V4 a -> Bool
$celem :: forall a. Eq a => a -> V4 a -> Bool
length :: V4 a -> Int
$clength :: forall a. V4 a -> Int
null :: V4 a -> Bool
$cnull :: forall a. V4 a -> Bool
toList :: V4 a -> [a]
$ctoList :: forall a. V4 a -> [a]
foldl1 :: (a -> a -> a) -> V4 a -> a
$cfoldl1 :: forall a. (a -> a -> a) -> V4 a -> a
foldr1 :: (a -> a -> a) -> V4 a -> a
$cfoldr1 :: forall a. (a -> a -> a) -> V4 a -> a
foldl' :: (b -> a -> b) -> b -> V4 a -> b
$cfoldl' :: forall b a. (b -> a -> b) -> b -> V4 a -> b
foldl :: (b -> a -> b) -> b -> V4 a -> b
$cfoldl :: forall b a. (b -> a -> b) -> b -> V4 a -> b
foldr' :: (a -> b -> b) -> b -> V4 a -> b
$cfoldr' :: forall a b. (a -> b -> b) -> b -> V4 a -> b
foldr :: (a -> b -> b) -> b -> V4 a -> b
$cfoldr :: forall a b. (a -> b -> b) -> b -> V4 a -> b
foldMap' :: (a -> m) -> V4 a -> m
$cfoldMap' :: forall m a. Monoid m => (a -> m) -> V4 a -> m
foldMap :: (a -> m) -> V4 a -> m
$cfoldMap :: forall m a. Monoid m => (a -> m) -> V4 a -> m
fold :: V4 m -> m
$cfold :: forall m. Monoid m => V4 m -> m
Foldable,Functor V4
Foldable V4
Functor V4
-> Foldable V4
-> (forall (f :: * -> *) a b.
    Applicative f =>
    (a -> f b) -> V4 a -> f (V4 b))
-> (forall (f :: * -> *) a. Applicative f => V4 (f a) -> f (V4 a))
-> (forall (m :: * -> *) a b.
    Monad m =>
    (a -> m b) -> V4 a -> m (V4 b))
-> (forall (m :: * -> *) a. Monad m => V4 (m a) -> m (V4 a))
-> Traversable V4
(a -> f b) -> V4 a -> f (V4 b)
forall (t :: * -> *).
Functor t
-> Foldable t
-> (forall (f :: * -> *) a b.
    Applicative f =>
    (a -> f b) -> t a -> f (t b))
-> (forall (f :: * -> *) a. Applicative f => t (f a) -> f (t a))
-> (forall (m :: * -> *) a b.
    Monad m =>
    (a -> m b) -> t a -> m (t b))
-> (forall (m :: * -> *) a. Monad m => t (m a) -> m (t a))
-> Traversable t
forall (m :: * -> *) a. Monad m => V4 (m a) -> m (V4 a)
forall (f :: * -> *) a. Applicative f => V4 (f a) -> f (V4 a)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> V4 a -> m (V4 b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> V4 a -> f (V4 b)
sequence :: V4 (m a) -> m (V4 a)
$csequence :: forall (m :: * -> *) a. Monad m => V4 (m a) -> m (V4 a)
mapM :: (a -> m b) -> V4 a -> m (V4 b)
$cmapM :: forall (m :: * -> *) a b. Monad m => (a -> m b) -> V4 a -> m (V4 b)
sequenceA :: V4 (f a) -> f (V4 a)
$csequenceA :: forall (f :: * -> *) a. Applicative f => V4 (f a) -> f (V4 a)
traverse :: (a -> f b) -> V4 a -> f (V4 b)
$ctraverse :: forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> V4 a -> f (V4 b)
$cp2Traversable :: Foldable V4
$cp1Traversable :: Functor V4
Traversable)

-- | Type synonym for 2x3 matrices
type M23 a = V2 (V3 a)