Case

object Case
Companion
class
class Object
trait Matchable
class Any

Type members

Types

type DropByType[Type, Cases <: Tuple] = Cases match { case EmptyTuple => EmptyTuple case Case[_$4, Type, _$5] *: tail => tail case head *: tail => head *: DropByType[Type, tail] }
type FromLabelsAndTypes[Labels <: Tuple, Types <: Tuple] = FromLabelsAndTypesWithAcc[Labels, Types, 0]
type FromLabelsAndTypesWithAcc[Labels <: Tuple, Types <: Tuple, Ord <: Int] = (Labels, Types) match { case (EmptyTuple, EmptyTuple) => EmptyTuple case (labelHead *: labelTail, typeHead *: typeTail) => Case[labelHead, typeHead, Ord] *: FromLabelsAndTypesWithAcc[labelTail, typeTail, S[Ord]] }
type OrdinalForType[Type, Cases <: Tuple] = Cases match { case EmptyTuple => Nothing case Case[_$1, Type, ordinal] *: _$2 => ordinal case _$3 *: tail => OrdinalForType[Type, tail] }