-- 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