DerivedImpl

class DerivedImpl[A, ElemTypes <: Tuple, ElemLabels <: Tuple, TypeName0 <: String](using val m: SumOf[A] { type MirroredElemTypes = ElemTypes; type MirroredElemLabels = ElemLabels; type MirroredLabel = TypeName0; }, val idClassTag: ClassTag[TupleUnionLub[ElemTypes, A, Nothing]]) extends InlineHKDSumGeneric[A] with InlineHKDGenericTypeclassOps[A, ElemTypes]
trait InlineHKDGenericTypeclassOps[A, ElemTypes]
class Object
trait Matchable
class Any

Type members

Inherited classlikes

class IdxWrapper[X](val idx: IndexAux[X & ElemTop])

A wrapper for Index where we want no bound on what X can be.

A wrapper for Index where we want no bound on what X can be.

Inherited from:
InlineHKDGeneric

Types

override type ElemTop = TupleUnionLub[ElemTypes, A, Nothing]

The top type for the inner type of Index and Gen.

The top type for the inner type of Index and Gen.

override type FieldOf[Name <: Names] = FieldOfImpl[Name, ElemTop, ElemTypes, ElemLabels]

Returns the type of a field given its name.

Returns the type of a field given its name.

override type Gen[F[_]] = IArray[F[ElemTop]]

A representation of A supporting higher kinded types.

A representation of A supporting higher kinded types.

override type Index = IntIdx[Size[ElemTypes], ElemTop]

The index of the Gen type.

The index of the Gen type.

override type Names = Names[ElemLabels]

The name of the fields of A type. Field in this case can mean either the children of a sum type, or the fields of a product type.

The name of the fields of A type. Field in this case can mean either the children of a sum type, or the fields of a product type.

override type TupleRep = ElemTypes

A tuple representation of A.

A tuple representation of A.

override type TypeName = MirroredLabel

The name of the A type.

The name of the A type.

Inherited types

type IndexAux[X0 <: ElemTop] = Index { type X = X0; }
Inherited from:
InlineHKDGeneric
type NameOf[X <: ElemTop] <: Names

Returns the name of a field given the type of the field.

Returns the name of a field given the type of the field.

Inherited from:
InlineHKDSumGeneric

Value members

Concrete methods

inline def from(a: Gen[Option]): Option[A]

Convert a value of the higher kinded representation to A. Will only return Some if only one of the fields is Some and the rest is None.

Convert a value of the higher kinded representation to A. Will only return Some if only one of the fields is Some and the rest is None.

inline override def genToTuple[F[_]](gen: Gen[F]): Map[TupleRep, F]

Converts Gen to the tuple representation.

Converts Gen to the tuple representation.

Definition Classes
inline def indexOf[X <: ElemTop](x: X): IndexAux[X]

Returns the index of a value. Because of soundness, this method can not be used if X = A. In that case, use indexOfA instead.

Returns the index of a value. Because of soundness, this method can not be used if X = A. In that case, use indexOfA instead.

Same as indexOfA but also essentially cats the value to the unknown type, allowing further operations on it that requires that it is a subtype of A.

Same as indexOfA but also essentially cats the value to the unknown type, allowing further operations on it that requires that it is a subtype of A.

inline def indexToName(idx: Index): NameOf[<none>]

Given a index, return the name of the index.

Given a index, return the name of the index.

inline override def names: Gen[Const[Names]]

The name of the fields of A type. Field in this case can mean either the children of a sum type, or the fields of a product type.

The name of the fields of A type. Field in this case can mean either the children of a sum type, or the fields of a product type.

Definition Classes
inline override def size: Size[ElemTypes]
inline override def stringToName(s: String): Option[Names]

Validates a string as a name if it matches the name of a field.

Validates a string as a name if it matches the name of a field.

Definition Classes
inline override def tupleToGen[F[_]](tuple: Map[TupleRep, F]): Gen[F]

Converts the tuple representation to Gen.

Converts the tuple representation to Gen.

Definition Classes
inline override def typeName: TypeName

The name of the A type.

The name of the A type.

Definition Classes

Inherited methods

inline def indexOfA(a: A): Index

Same as indexOf but also works for values of type A.

Same as indexOf but also works for values of type A.

Inherited from:
InlineHKDSumGeneric
inline def indicesK: Gen[IdxWrapper]
Inherited from:
InlineHKDGeneric
inline override def nameToIndex[Name <: Names](name: Name): IndexAux[FieldOf[Name]]

Returns the index of the field a name corresponds to.

Returns the index of the field a name corresponds to.

Definition Classes
Inherited from:
InlineHKDGenericTypeclassOps
inline def tabulateConst[B](inline f: Index => B)(using ClassTag[B]): Gen[Const[B]]
Inherited from:
InlineHKDGeneric
inline override def tabulateFoldLeft[B](inline start: B)(inline f: (B, Index) => B): B
inline override def tabulateK[A[_]](inline f: (i: Index) => A[<none>])(using classTag: ClassTag[A[ElemTop]]): Gen[A]
inline def tabulateTraverseIdK[G[_]](inline f: (i: Index) => G[<none>])(using inline G: Applicative[G]): G[Gen[Id]]
Inherited from:
InlineHKDGeneric
inline override def tabulateTraverseK[G[_], B[_]](inline f: (i: Index) => G[B[<none>]])(using inline G: Applicative[G], classTag: ClassTag[B[ElemTop]]): G[Gen[B]]
inline def to(a: A): Gen[Option]

Convert a value of A to the higher kinded representation. It will be Some in only one field, corresponding to the subtype passed in, and None in all the others.

Convert a value of A to the higher kinded representation. It will be Some in only one field, corresponding to the subtype passed in, and None in all the others.

Inherited from:
InlineHKDSumGeneric
inline def unitK: Gen[Const[Unit]]
Inherited from:
InlineHKDGeneric

Givens

Givens

given idClassTag: ClassTag[TupleUnionLub[ElemTypes, A, Nothing]]
given m: SumOf[A] { type MirroredElemTypes = ElemTypes; type MirroredElemLabels = ElemLabels; type MirroredLabel = TypeName0; }
given summonInstances[F[_]]: Gen[F]
Definition Classes

Inherited givens

Extensions

Inherited extensions

extension [A[_]](a: ValueK[A])
inline override def pure: Gen[A]
extension [A[_], B[_]](f: FunctionK[A, B])
inline def liftK: Gen[A] #~>#: Gen[B]
Inherited from:
InlineHKDGeneric
extension [A[_]](fa: Gen[A])
inline override def traverseK[G[_], B[_]](inline f: FunctionK[A, Compose2[G, B]])(using inline G: Applicative[G], classTag: ClassTag[B[ElemTop]]): G[Gen[B]]
extension [A](fa: Gen[Const[A]])
inline override def toListK: List[A]
extension [A[_]](fa: Gen[A])
inline override def indexK(rep: Index): A[<none>]
extension [A[_]](fa: Gen[A])
inline def sequenceIdK(using inline G: Applicative[A]): A[Gen[Id]]
Inherited from:
InlineHKDGeneric
inline def traverseIdK[G[_]](inline f: FunctionK[A, G])(using inline G: Applicative[G]): G[Gen[Id]]
Inherited from:
InlineHKDGeneric
extension [A[_]](fa: Gen[A])
inline override def mapK[B[_]](inline f: FunctionK[A, B]): Gen[B]
extension [A[_]](fa: Gen[A])
inline def asK[B[_]](inline b: ValueK[B]): Gen[B]
Inherited from:
InlineHKDGeneric
inline def mapConst[B](inline f: A ~>#: B): Gen[Const[B]]
Inherited from:
InlineHKDGeneric
inline def voidK: Gen[Const[Unit]]
Inherited from:
InlineHKDGeneric
inline def widen[B[D]]: Gen[B]
Inherited from:
InlineHKDGeneric
extension [A[_]](fa: Gen[A])
inline override def foldLeftK[B](inline b: B)(inline f: B => A ~>#: B): B
inline override def foldMapK[B](inline f: A ~>#: B)(using B: Monoid[B]): B
extension [A[_]](fa: Gen[A])
inline override def flatMapK[B[_]](inline f: FunctionK[A, Const[Gen[B]]]): Gen[B]
extension [A[_]](fa: Gen[A])
inline override def map2K[B[_], Z[_]](fb: Gen[B])(inline f: [X] => (x$1: A[X], x$2: B[X]) => Z[X]): Gen[Z]
extension [A[_]](fa: Gen[A])
inline def map2Const[B[_], Z](fb: Gen[B])(inline f: [X] => (x$1: A[X], x$2: B[X]) => Z): Gen[Const[Z]]
Inherited from:
InlineHKDGeneric
inline def tupledK[B[_]](fb: Gen[B]): Gen[Tuple2K[A, B]]
Inherited from:
InlineHKDGeneric
extension [A[_], B[_]](ff: Gen[[D] =>> A[D] => B[D]])
inline def ap(fa: Gen[A]): Gen[B]
Inherited from:
InlineHKDGeneric
extension [A[_]](ffa: Gen[Const[Gen[A]]])
inline def flattenK: Gen[A]
Inherited from:
InlineHKDGeneric
extension [G[_], A[_]](fga: Gen[Compose2[G, A]])
inline override def sequenceK(using inline G: Applicative[G]): G[Gen[A]]
extension [G[_], A](ga: G[A])
inline def collectK[B[_]](inline f: A => Gen[B]): Gen[Compose2[G, B]]
Inherited from:
InlineHKDGeneric
extension [F[_]](gen: Gen[F])
inline def widenConst: Gen[Const[F[A]]]

Widen the higher kinded representation to a Const type of the top type.

Widen the higher kinded representation to a Const type of the top type.

Inherited from:
InlineHKDSumGeneric
extension [G[_], A[_]](gfa: G[Gen[A]])
inline def distributeConst[B](inline f: Compose2[G, A] ~>#: B): Gen[Const[B]]
Inherited from:
InlineHKDGeneric
inline def distributeK[B[_]](inline f: FunctionK[Compose2[G, A], B]): Gen[B]
Inherited from:
InlineHKDGeneric
extension [G[_], A[_]](gfa: G[Gen[A]])
inline override def cosequenceK(implicit evidence$20: Functor[G]): Gen[Compose2[G, A]]