case class CnstDepFuncConsShape[HShape <: HList, H <: Term with Subs[H], HC <: Term with Subs[HC], T <: Term with Subs[T], HS <: Term with Subs[HS]](tail: Typ[T], headfibre: (T) => ConstructorShape[HShape, H, HC]) extends ConstructorShape[::[CnstDepFuncConsShape.type, HShape], H, FuncLike[T, HC]] with Product with Serializable
ConstructorShape corresponding to an introduction rule of the form
A ~> head
with A
not dependent on the inductive type W
being constructed
- Alphabetic
- By Inheritance
- CnstDepFuncConsShape
- Serializable
- Product
- Equals
- ConstructorShape
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new CnstDepFuncConsShape(tail: Typ[T], headfibre: (T) => ConstructorShape[HShape, H, HC])
Value Members
- def -->:(that: IdShape.type): FuncConsShape[::[CnstDepFuncConsShape.type, HShape], H, FuncLike[T, HC], H]
returns shape
that -> this' where
thatmust be the shape for inductive type
Wreturns shape
that -> this' where
thatmust be the shape for inductive type
W- Definition Classes
- ConstructorShape
- def -->:[F <: Term with Subs[F]](that: IterFuncShape[H, F]): FuncConsShape[::[CnstDepFuncConsShape.type, HShape], H, FuncLike[T, HC], F]
returns shape
that -> this' where
thatis of the form
W,
A -> Wetc; invoking this is an error if we
thatis independent of
Wreturns shape
that -> this' where
thatis of the form
W,
A -> Wetc; invoking this is an error if we
thatis independent of
W- Definition Classes
- ConstructorShape
- def ->:[T <: Term with Subs[T]](tail: Typ[T]): CnstFuncConsShape[::[CnstDepFuncConsShape.type, HShape], H, FuncLike[T, HC], T, Nothing]
returns shape
tail ->: this
where tail must be independent of the inductive typeW
being defined.returns shape
tail ->: this
where tail must be independent of the inductive typeW
being defined.- Definition Classes
- ConstructorShape
- def apply(W: Typ[H]): Typ[FuncLike[T, HC]]
returns HoTT type of the introduction rule given the (inductive) type W (to be the head).
returns HoTT type of the introduction rule given the (inductive) type W (to be the head).
- Definition Classes
- CnstDepFuncConsShape → ConstructorShape
- val headfibre: (T) => ConstructorShape[HShape, H, HC]
- lazy val introArgs: Int
- Definition Classes
- CnstDepFuncConsShape → ConstructorShape
- def lift[Cod <: Term with Subs[Cod], RecDataType <: Term with Subs[RecDataType], InducDataType <: Term with Subs[InducDataType]](implicit mp: ConstructorPatternMapper[::[CnstDepFuncConsShape.type, HShape], Cod, FuncLike[T, HC], H, RecDataType, InducDataType]): ConstructorPatternMap[Cod, FuncLike[T, HC], H, RecDataType, InducDataType]
lift to ConstructorPatternMap using an implicit ConstructorPatternMapper, which could from the mapper method.
lift to ConstructorPatternMap using an implicit ConstructorPatternMapper, which could from the mapper method.
- Definition Classes
- ConstructorShape
- def mapped[Cod <: Term with Subs[Cod]]: ConstructorPatternMap[Cod, FuncLike[T, HC], H, RecDataType, InducDataType] forSome {type RecDataType <: Term with Subs[RecDataType], type InducDataType <: Term with Subs[InducDataType]}
lift to ConstructorPatternMap using the result of the mapper method.
lift to ConstructorPatternMap using the result of the mapper method.
- Definition Classes
- ConstructorShape
- def mapper[Cod <: Term with Subs[Cod]]: ConstructorPatternMapper[::[CnstDepFuncConsShape.type, HShape], Cod, FuncLike[T, HC], H, FuncLike[T, RecDataType], FuncLike[T, InducDataType]] forSome {type RecDataType <: Term with Subs[RecDataType], type InducDataType <: Term with Subs[InducDataType]}
helper to give ConstructorPatternMap when scala type of codomain is specified.
helper to give ConstructorPatternMap when scala type of codomain is specified.
- Definition Classes
- CnstDepFuncConsShape → ConstructorShape
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- def subs(x: Term, y: Term): CnstDepFuncConsShape[HShape, H, HC, T, Nothing]
- Definition Classes
- CnstDepFuncConsShape → ConstructorShape
- def symbcons(name: AnySym, tp: Typ[H]): ConstructorShape.symbcons._1.type.Obj with Subs[ConstructorShape.symbcons._1.type.Obj] forSome {val _1: Typ[FuncLike[T, HC]]}
returns term giving introduction rule given inductive type and name
returns term giving introduction rule given inductive type and name
- Definition Classes
- ConstructorShape
- val tail: Typ[T]
- def ~>:[T <: Term with Subs[T]](tailVar: T): CnstDepFuncConsShape[::[CnstDepFuncConsShape.type, HShape], H, FuncLike[T, HC], T, Nothing]
returns dependent shape
tail ~>: this
where tail must be independent of the inductive typeW
being defined.returns dependent shape
tail ~>: this
where tail must be independent of the inductive typeW
being defined.- Definition Classes
- ConstructorShape