tuple-generic-0.6.0.0: Generic operations on tuples

Safe HaskellSafe
LanguageHaskell2010

Data.Tuple.Generic

Contents

Description

This module supports operations with tuples with up to 16 elements.

Generic accessors and setters aren't included, because I'm lazy. If you want them, either file an issue or consider using microlens, which is a dependency-free alternative to lens providing generic lenses for tuples.

Synopsis

Cons and uncons

class TupleCons a b x | b -> x, b -> a, a x -> b where Source

Methods

cons :: x -> a -> b Source

Prepend a value to a tuple.

>>> cons 0 (1,2,3)
(0,1,2,3)

uncons :: b -> (x, a) Source

Split off the 1st element of a tuple.

>>> uncons (0,1,2,3)
(0,(1,2,3))

Instances

TupleCons (a1, a2) (x, a1, a2) x Source 
TupleCons (a1, a2, a3) (x, a1, a2, a3) x Source 
TupleCons (a1, a2, a3, a4) (x, a1, a2, a3, a4) x Source 
TupleCons (a1, a2, a3, a4, a5) (x, a1, a2, a3, a4, a5) x Source 
TupleCons (a1, a2, a3, a4, a5, a6) (x, a1, a2, a3, a4, a5, a6) x Source 
TupleCons (a1, a2, a3, a4, a5, a6, a7) (x, a1, a2, a3, a4, a5, a6, a7) x Source 
TupleCons (a1, a2, a3, a4, a5, a6, a7, a8) (x, a1, a2, a3, a4, a5, a6, a7, a8) x Source 
TupleCons (a1, a2, a3, a4, a5, a6, a7, a8, a9) (x, a1, a2, a3, a4, a5, a6, a7, a8, a9) x Source 
TupleCons (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) (x, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) x Source 
TupleCons (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) (x, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) x Source 
TupleCons (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) (x, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) x Source 
TupleCons (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) (x, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) x Source 
TupleCons (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) (x, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) x Source 
TupleCons (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) (x, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) x Source 
TupleCons (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) (x, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) x Source 

Snoc and unsnoc

class TupleSnoc a b x | b -> x, b -> a, a x -> b where Source

Methods

snoc :: a -> x -> b Source

Append a value to a tuple.

>>> snoc (1,2,3) 4
(1,2,3,4)

unsnoc :: b -> (a, x) Source

Split off the last element of a tuple.

>>> unsnoc (1,2,3,4)
((1,2,3),4)

Instances

TupleSnoc (a1, a2) (a1, a2, x) x Source 
TupleSnoc (a1, a2, a3) (a1, a2, a3, x) x Source 
TupleSnoc (a1, a2, a3, a4) (a1, a2, a3, a4, x) x Source 
TupleSnoc (a1, a2, a3, a4, a5) (a1, a2, a3, a4, a5, x) x Source 
TupleSnoc (a1, a2, a3, a4, a5, a6) (a1, a2, a3, a4, a5, a6, x) x Source 
TupleSnoc (a1, a2, a3, a4, a5, a6, a7) (a1, a2, a3, a4, a5, a6, a7, x) x Source 
TupleSnoc (a1, a2, a3, a4, a5, a6, a7, a8) (a1, a2, a3, a4, a5, a6, a7, a8, x) x Source 
TupleSnoc (a1, a2, a3, a4, a5, a6, a7, a8, a9) (a1, a2, a3, a4, a5, a6, a7, a8, a9, x) x Source 
TupleSnoc (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, x) x Source 
TupleSnoc (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, x) x Source 
TupleSnoc (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, x) x Source 
TupleSnoc (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, x) x Source 
TupleSnoc (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, x) x Source 
TupleSnoc (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, x) x Source 
TupleSnoc (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, x) x Source