-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Homogeneous tuples of arbitrary length. -- -- Please see the README on Github at -- https://github.com/athanclark/n-tuple#readme @package n-tuple @version 0.0.3 module Data.NTuple data NTuple (size :: Nat) a empty :: NTuple 0 a -- | Project an element out of the tuple proj :: (n <= size, (n > 0) ~ 'True, KnownNat n) => Proxy n -> NTuple size a -> a -- | Include an element to the tuple, overwriting on an existing index incl :: (n <= (size + 1), (n > 0) ~ 'True, KnownNat n, size' ~ If (n == (size + 1)) (size + 1) size) => Proxy n -> a -> NTuple size a -> NTuple size' a toVector :: NTuple size a -> Vector a _1 :: Proxy 1 _2 :: Proxy 2 _3 :: Proxy 3 _4 :: Proxy 4 _5 :: Proxy 5 _6 :: Proxy 6 _7 :: Proxy 7 _8 :: Proxy 8 _9 :: Proxy 9 _10 :: Proxy 10 instance Data.Traversable.Traversable (Data.NTuple.NTuple size) instance Data.Foldable.Foldable (Data.NTuple.NTuple size) instance GHC.Base.Functor (Data.NTuple.NTuple size) instance GHC.Generics.Generic (Data.NTuple.NTuple size a) instance (GHC.TypeNats.KnownNat size, Data.Data.Data a) => Data.Data.Data (Data.NTuple.NTuple size a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.NTuple.NTuple size a) instance GHC.Show.Show a => GHC.Show.Show (Data.NTuple.NTuple size a)