Non-empty HList
element type.
Type class witnessing that every element of L
is an element of M
.
Type class representing one-level generic queries.
Type class representing one-level generic transformations.
Dependent nullary function type.
Dependent unary function type.
Dependent binary function type.
The SYB everything combinator
The SYB everywhere combinator
Field with values of type V
.
Field with values of type V
.
Record keys of this form should be objects which extend this trait. Keys may also be arbitrary singleton typed values, however keys of this form enforce the type of their values.
Polymorphic function that allows modifications on record fields while preserving the original key types.
HList
ADT base trait.
Heterogenous map with type-level key/value associations that are fixed by an arbitrary
relation R
.
Heterogenous map with type-level key/value associations that are fixed by an arbitrary
relation R
.
HMap
s extend Poly
and hence are also polymorphic function values with type-specific
cases corresponding to the map's type-level key/value associations.
Empty HList
element type.
Type class witnessing that every element of L
is of the form FieldType[K, V]
where K
is an element of M
.
Type class witnessing that every element of L
is a subtype of B
.
A type class abstracting over the product
operation of type classes over
types of kind *
, as well as deriving instances using an isomorphism.
A type class abstracting over the product
operation of type classes over
types of kind *
, as well as deriving instances using an isomorphism.
Refines ProductTypeClass with the addition of runtime String
labels
corresponding to the names of the product elements.
A type class additinally abstracting over the coproduct
operation of type
classes over types of kind *
.
A type class additinally abstracting over the coproduct
operation of type
classes over types of kind *
.
Name hints can be safely ignored.
Type class witnessing the least upper bound of a pair of types and providing conversions from each to their common supertype.
Base trait for type level natural numbers.
Base trait for polymorphic values.
Trait simplifying the creation of polymorphic values.
A type class abstracting over the product
operation of type classes over
types of kind *
, as well as deriving instances using an isomorphism.
Wrapper for a collection type witnessing that it has the statically specified length.
Wrapper for a collection type witnessing that it has the statically specified length. Can be
applied to any type which can be viewed as a GenTraversableLike
, ie. standard collections,
Array
s, String
s etc.
Carrier for Sized
operations.
Carrier for Sized
operations.
These operations are implemented here as extension methods of the minimal Sized
type to avoid issues that would
otherwise be caused by its covariance.
Encoding of successor.
Extractor for use of Typeable
in pattern matching.
Extractor for use of Typeable
in pattern matching.
Thanks to Stacy Curl for the idea.
A type class additinally abstracting over the coproduct
operation of type
classes over types of kind *
.
Type class supporting type safe cast.
Type class witnessing that every element of L
has TC
as its outer type constructor.
Type class witnessing that type P
is equal to F[T]
for some higher kinded type F[_]
and type T
.
Type class witnessing that type P
is equal to F[T, U]
for some higher kinded type F[_, _]
and types T
and U
.
Type class witnessing that every element of L
is of the form FieldType[K, V]
where V
is an element of M
.
Generic Zipper for any type with a representation via Generic
.
Encoding of zero.
Type class witnessing the existence of a natural transformation between K[_]
and V[_]
.
Type class witnessing the existence of a natural transformation between K[_]
and V[_]
.
Use this trait to represent an HMap
relation of the form K[T]
maps to V[T]
.
Empty HList
value.
Type level encoding of the natural numbers.
Provides implicit conversions from polymorphic function values to monomorphic function values, eg.
Provides implicit conversions from polymorphic function values to monomorphic function values, eg. for use as arguments to ordinary higher order functions.
Provides instances of Typeable
.
Provides instances of Typeable
. Also provides an implicit conversion which enhances arbitrary values with a
cast[U]
method.
Lens
definitions
Nat
literals
Poly
definitions
Higher ranked function which converts products to HLists
.
Record operations on HList
's with field-like elements.
Higher ranked function which converts HLists
to tuples.