-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Generalization of fst, snd, etc.
@package nthable
@version 0.1
-- | Generalizes snd, fst, and so on.
module Data.Nthable
-- | A class that knows how to access the nth member of a type.
class Pos n => Nthable t n a | t n -> a
nth :: Nthable t n a => n -> t -> a
-- | fst extended to work on any Nthable type.
fst :: Nthable n D1 a => n -> a
-- | snd extended to work on any Nthable type.
snd :: Nthable n D2 a => n -> a
thrd :: Nthable n D3 a => n -> a
frth :: Nthable n D4 a => n -> a
ffth :: Nthable n D5 a => n -> a
sxth :: Nthable n D6 a => n -> a
svnth :: Nthable n D7 a => n -> a
instance Nthable (a, b, c, d, e, f, g) D7 g
instance Nthable (a, b, c, d, e, f, g) D6 f
instance Nthable (a, b, c, d, e, f, g) D5 e
instance Nthable (a, b, c, d, e, f, g) D4 d
instance Nthable (a, b, c, d, e, f, g) D3 c
instance Nthable (a, b, c, d, e, f, g) D2 b
instance Nthable (a, b, c, d, e, f, g) D1 a
instance Nthable (a, b, c, d, e, f) D6 f
instance Nthable (a, b, c, d, e, f) D5 e
instance Nthable (a, b, c, d, e, f) D4 d
instance Nthable (a, b, c, d, e, f) D3 c
instance Nthable (a, b, c, d, e, f) D2 b
instance Nthable (a, b, c, d, e, f) D1 a
instance Nthable (a, b, c, d, e) D5 e
instance Nthable (a, b, c, d, e) D4 d
instance Nthable (a, b, c, d, e) D3 c
instance Nthable (a, b, c, d, e) D2 b
instance Nthable (a, b, c, d, e) D1 a
instance Nthable (a, b, c, d) D4 d
instance Nthable (a, b, c, d) D3 c
instance Nthable (a, b, c, d) D2 b
instance Nthable (a, b, c, d) D1 a
instance Nthable (a, b, c) D3 c
instance Nthable (a, b, c) D2 b
instance Nthable (a, b, c) D1 a
instance Nthable (a, b) D2 b
instance Nthable (a, b) D1 a