Type class supporting permuting this HList
into the same order as another HList
with
the same element types.
Type class supporting access to the nth element of this HList
.
Type class supporting access to the nth element of this HList
. Available only if this HList
has at least
n elements.
Type Class witnessing that an 'HList' can be collected with a 'Poly' to produce an 'HList'
Type class witnessing that there exists at least one element of an HList
for which a Poly
can be
applied.
Type class witnessing that the result of stripping type constructor F
off each element of HList
L
is Out
.
Type class supporting mapping a constant valued function over this HList
.
Type class supporting HList
subtraction.
Type class supporting HList
subtraction. In case of duplicate types, this operation is a multiset difference.
If type T
appears n times in this HList
and m < n times in M
, the resulting HList
contains the last n - m
elements of type T
in this HList
.
Also available if M
contains types absent in this HList
.
Type class supporting removal of the first n elements of this HList
.
Type class supporting removal of the first n elements of this HList
. Available only if this HList
has at
least n elements.
Type class supporting producing a HList of shape N
filled with elements of type A
.
Type class supporting access to the all elements of this HList
of type U
.
Type class supporting access to the all elements of this HList
of type different than U
.
Type class supporting interleaving an element into each row of this HMatrix (HList of HLists)
Type class supporting flatmapping a higher ranked function over this HList
.
Typeclass supporting grouping this HList
into tuples of N
items each, at Step
apart.
Typeclass supporting grouping this HList
into tuples of N
items each, at Step
apart. If Step
equals N
then the groups do not overlap.
Type class providing minimally witnessed operations on HList
s which can be derived from L
by wrapping
each of its elements in a type constructor.
Type class supporting access to all but the last element of this HList
.
Type class supporting access to all but the last element of this HList
. Available only if this HList
has at
least one element.
Type class supporting adding an element to each possible position in this HList
Type class supporting HList
intersection.
Type class supporting HList
intersection. In case of duplicate types, this operation is a multiset intersection.
If type T
appears n times in this HList
and m < n times in M
, the resulting HList
contains the first m
elements of type T
in this HList
.
Also available if M
contains types absent in this HList
.
Type class witnessing that this HList
is composite and providing access to head and tail.
Type class supporting access to the last element of this HList
.
Type class supporting access to the last element of this HList
. Available only if this HList
has at least one
element.
Type class supporting left-folding a polymorphic binary function over this HList
.
Type class supporting left-reducing a polymorphic binary function over this HList
.
Type class supporting left scanning of this HList
with a binary polymorphic function.
Type class supporting computing the type-level Nat corresponding to the length of this HList
.
Typeclass witnessing that all the elements of an HList have instances of the given typeclass.
Typeclass witnessing that all the elements of an HList have instances of the given typeclass. Courtesy of mpilquist.
Typeclass supporting grouping this HList
into tuples of N
items each, at Step
apart.
Typeclass supporting grouping this HList
into tuples of N
items each, at Step
apart. If Step
equals N
then the groups do not overlap.
Use elements in pad
as necessary to complete last group up to n
items.
Type class supporting mapping a polymorphic function over this HList
and then folding the result using a
monomorphic function value.
Type class witnessing that the result of wrapping each element of HList
L
in type constructor F
is Out
.
Type class supporting mapping a higher ranked function over this HList
.
Type class supporting replacement of the first element of type U from this HList
with the result of
its transformation via a given function into a new element of type V.
Type class supporting replacement of the first element of type U from this HList
with the result of
its transformation via a given function into a new element of type V.
Available only if this HList
contains an element of type U
.
Type class supporting replacement of the N
th element of this HList
with the result of
calling F
on it.
Type class supporting replacement of the N
th element of this HList
with the result of
calling F
on it.
Available only if this HList
contains at least N
elements.
Type class witnessing that HList
s L1
and L2
have elements of the form F1[Ln]
and F2[Ln]
respectively for all
indices n
.
Type class witnessing that HList
s L1
and L2
have elements of the form F1[Ln]
and F2[Ln]
respectively for all
indices n
. This implies that a natural transform F1 ~> F2
will take a list of type L1
onto a list of type L2
.
Type class supporting producing a HList of shape N
padded with elements of type A
.
Type class supporting partitioning this HList
into those elements of type U
and the
remainder
Type class supporting the patching of an HList
Type class supporting the calculation of every permutation of this 'HList'
Type class supporting prepending to this HList
.
Type class supporting removal of an element from this HList
.
Type class supporting removal of an element from this HList
. Available only if this HList
contains an
element of type E
.
Type class supporting removal of a sublist from this HList
.
Type class supporting removal of a sublist from this HList
. Available only if this HList
contains a
sublist of type SL
.
The elements of SL
do not have to be contiguous in this HList
.
Type class supporting replacement of the Nth element of this HList
with an element of type V.
Type class supporting replacement of the Nth element of this HList
with an element of type V. Available only if
this HList
contains at least N elements.
Type class supporting replacement of the first element of type U from this HList
with an element of type V.
Type class supporting replacement of the first element of type U from this HList
with an element of type V.
Available only if this HList
contains an element of type U
.
Type class supporting reversing this HList
.
Type class supporting reverse prepending to this HList
.
Type class supporting splitting this HList
at the nth element returning the reverse prefix and suffix as a
pair.
Type class supporting splitting this HList
at the nth element returning the reverse prefix and suffix as a
pair. Available only if this HList
has at least n elements.
Type class supporting splitting this HList
at the first occurrence of an element of type U
returning the reverse
prefix and suffix as a pair.
Type class supporting splitting this HList
at the first occurrence of an element of type U
returning the reverse
prefix and suffix as a pair. Available only if this HList
contains an element of type U
.
Type class supporting splitting this HList
at the last occurrence of an element of type U
returning the reverse
prefix and suffix as a pair.
Type class supporting splitting this HList
at the last occurrence of an element of type U
returning the reverse
prefix and suffix as a pair. Available only if this HList
contains an element of type U
.
Type class supporting right-folding a polymorphic binary function over this HList
.
Type class supporting right-reducing a polymorphic binary function over this HList
.
Type class supporting right scanning of this HList
with a binary polymorphic function.
Type class supporting rotating a HList left
Type class supporting rotating a HList right
Type class supporting access to the elements of this HList
specified by Ids
.
Type class supporting access to the elements of this HList
specified by Ids
. Available only if this HList
contains all elements specified in Ids
.
Type class supporting supporting access to the elements in range [a,b[ of this HList
.
Type class supporting supporting access to the elements in range [a,b[ of this HList
.
Avaialable only if this HList
contains all elements in range
Type class supporting access to the first element of this HList
of type U
.
Type class supporting access to the first element of this HList
of type U
. Available only if this HList
contains an element of type U
.
Type class supporting the slicing of an HList
Type class supporting splitting this HList
at the nth element returning the prefix and suffix as a pair.
Type class supporting splitting this HList
at the nth element returning the prefix and suffix as a pair.
Available only if this HList
has at least n elements.
Type class supporting splitting this HList
at the first occurrence of an element of type U
returning the prefix
and suffix as a pair.
Type class supporting splitting this HList
at the first occurrence of an element of type U
returning the prefix
and suffix as a pair. Available only if this HList
contains an element of type U
.
Type class supporting splitting this HList
at the last occurrence of an element of type U
returning the prefix
and suffix as a pair.
Type class supporting splitting this HList
at the last occurrence of an element of type U
returning the prefix
and suffix as a pair. Available only if this HList
contains an element of type U
.
Type class supporting unification of all elements that are subtypes of B
in this HList
to B
, with all other
elements left unchanged.
Type class supporting retrieval of the first n elements of this HList
.
Type class supporting retrieval of the first n elements of this HList
. Available only if this HList
has at
least n elements.
Type aliases and constructors provided for backward compatibility
Type class computing the coproduct type corresponding to this HList
.
Type class supporting conversion of this HList
to a M
with elements typed as
a minimal Coproduct
Cop such as each type of the elements of L appears once in Cop.
Type class supporting conversion of this HList
to a Sized[M[Lub], N]
with elements typed
as the least upper bound Lub of the types of the elements of this HList
.
Type class supporting conversion of this HList
to a Sized[M[Lub], N]
with elements typed
as the least upper bound Lub of the types of the elements of this HList
.
About serializability, see the comment in ToTraversable
.
Type class supporting conversion of this HList
to a M
with elements typed
as the least upper bound Lub of the types of the elements of this HList
.
Type class supporting conversion of this HList
to a M
with elements typed
as the least upper bound Lub of the types of the elements of this HList
.
Serializable if the CanBuildFrom
s it implicitly finds are too.
Note that the CanBuildFrom
s from the standard library are *not*
serializable. See the tests for how to make your own serializable
CanBuildFrom
available to ToTraversable
.
Type class supporting transposing this HList
.
Type class supporting conversion of this HList
to a tuple.
Type class supporting unification of this HList
.
Type class supporting HList
union.
Type class supporting HList
union. In case of duplicate types, this operation is a order-preserving multi-set union.
If type T
appears n times in this HList
and m > n times in M
, the resulting HList
contains the first n elements
of type T
in this HList
, followed by the last m - n element of type T
in M
.
Type class supporting unzipping this HList
of tuples returning a tuple of HList
s.
Type class supporting zipping this HList
of HList
s returning an HList
of tuples.
Type class supporting zipping this HList
of monomorphic function values with its argument HList
of
correspondingly typed function arguments returning the result of each application as an HList
.
Type class supporting zipping this HList
of monomorphic function values with its argument HList
of
correspondingly typed function arguments returning the result of each application as an HList
. Available only if
there is evidence that the corresponding function and argument elements have compatible types.
Type class supporting zipping an HList
with a constant, resulting in an HList
of tuples of the form
({element from input HList
}, {supplied constant})
Type class supporting zipping this HList
with an HList
of HList
s returning an HList
of HList
s with each
element of this HList
prepended to the corresponding HList
element of the argument HList
.
Type class supporting zipping an 'HList' with another 'HList' using a 'Poly2' resulting in an HList
Type class supporting zipping a HList
with its element indices, resulting in a 'HList' of tuples of the form
({element from input tuple}, {element index})
Type class supporting zipping an HList
of values with an HList
of keys to create a record.
Type class computing the sum type corresponding to this HList
.