TUPLE

template <typename... T> pure Tuple<T...> tuple(_T... args);
template <typename U, typename... T> pure const U &first(Tuple<U, T...> t);
template <typename A, typename U, typename... T> pure const U &second(Tuple<A, U, T...> t);
template <typename A, typename B, typename U, typename... T> pure const U &third(Tuple<A, B, U, T...> t);
template <typename A, typename B, typename C, typename U, typename... T> pure const U &fourth(Tuple<A, B, C, U, T...> t);
template <typename A, typename B, typename C, typename D, typename U, typename... T> pure const U &fifth(Tuple<A, B, C, D, U, T...> t);
template <typename A, typename B, typename C, typename D, typename E, typename U, typename... T> pure const U &sixth(Tuple<A, B, C, D, E, U, T...> t);
template <typename A, typename B, typename C, typename D, typename E, typename U, typename F, typename... T> pure const U &seventh(Tuple<A, B, C, D, E, F, U, T...> t);
template <typename A, typename B, typename C, typename D, typename E, typename U, typename F, typename G, typename... T> pure const U &eighth(Tuple<A, B, C, D, E, F, G, U, T...> t);
template <typename... T> constexpr size_t size(Tuple<T...> t);
template <typename... T> pure int compare(Tuple<T...> t, Tuple<T...> u);
template <typename... T> pure String show(Tuple<T...> t);

template <typename... T>
pure Tuple<T...> tuple(_T... args)

Construct a tuple. O(1).


template <typename U, typename... T>
pure const U &first(Tuple<U, T...> t)

First element of a tuple. O(1).


template <typename A, typename U, typename... T>
pure const U &second(Tuple<A, U, T...> t)

Second element of a tuple. O(1).


template <typename A, typename B, typename U, typename... T>
pure const U &third(Tuple<A, B, U, T...> t)

Third element of a tuple. O(1).


template <typename A, typename B, typename C, typename U, typename... T>
pure const U &fourth(Tuple<A, B, C, U, T...> t)

Fourth element of a tuple. O(1).


template <typename A, typename B, typename C, typename D, typename U, typename... T>
pure const U &fifth(Tuple<A, B, C, D, U, T...> t)

Fifth element of a tuple. O(1).


template <typename A, typename B, typename C, typename D, typename E, typename U, typename... T>
pure const U &sixth(Tuple<A, B, C, D, E, U, T...> t)

Sixth element of a tuple. O(1).


template <typename A, typename B, typename C, typename D, typename E, typename U, typename F, typename... T>
pure const U &seventh(Tuple<A, B, C, D, E, F, U, T...> t)

Seventh element of a tuple. O(1).


template <typename A, typename B, typename C, typename D, typename E, typename U, typename F, typename G, typename... T>
pure const U &eighth(Tuple<A, B, C, D, E, F, G, U, T...> t)

Eighth element of a tuple. O(1).


template <typename... T>
constexpr size_t size(Tuple<T...> t)

Tuple size (a.k.a. tuple length). O(1).


template <typename... T>
pure int compare(Tuple<T...> t, Tuple<T...> u)

Tuple compare. O(n).


template <typename... T>
pure String show(Tuple<T...> t)

Tuple show. O(n).