sealed trait RecursiveConstructorPattern[Cod <: Term with Subs[Cod], ArgT <: Term with Subs[ArgT], HeadT <: Term with Subs[HeadT], CT <: FuncLike[ArgT, HeadT] with Subs[CT], H <: Term with Subs[H]] extends ConstructorPattern[Cod, CT, H]
Functional extension of a type pattern
- Self Type
- RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H]
- Alphabetic
- By Inheritance
- RecursiveConstructorPattern
- ConstructorPattern
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Type Members
- type ArgType = ArgT
scala type of argument to constructor A -> ...
scala type of argument to constructor A -> ... (or A ~> ...)
- type ConstructorType = CT
- Definition Classes
- ConstructorPattern
- type DomainType = H
- Definition Classes
- ConstructorPattern
- abstract type HeadInducDataType <: Term
- abstract type HeadRecDataType <: Term
(scala) type of recursive data for head.
- type HeadType = HeadT
scala type of the head T for constructor A -> T for Pi-Types, the head may have varying HoTT type but must have fixed scala type.
- abstract type InducDataType <: Term with Subs[InducDataType]
(scala) type of data for recursion corresponding to the single constructor
(scala) type of data for recursion corresponding to the single constructor
- Definition Classes
- ConstructorPattern
- abstract type RecDataType <: Term with Subs[RecDataType]
(scala) type of data for recursion corresponding to the single constructor
(scala) type of data for recursion corresponding to the single constructor
- Definition Classes
- ConstructorPattern
Abstract Value Members
- abstract def apply(tp: Typ[H]): Typ[ConstructorType]
returns HoTT type corresponding to the pattern given the (inductive) type W (to be the head).
returns HoTT type corresponding to the pattern given the (inductive) type W (to be the head).
- Definition Classes
- ConstructorPattern
- abstract def headData(data: RecDataType, arg: ArgType, f: => Func[H, Cod]): HeadRecDataType
returns data for recursion to be passed on to the head given an argument (when matching with the constructor).
- abstract def headInducData(data: InducDataType, arg: ArgType, f: => FuncLike[H, Cod]): HeadInducDataType
- abstract val headfibre: (ArgType) => ConstructorPattern[Cod, HeadType, H] { ... /* 2 definitions in type refinement */ }
The head pattern, constant T for A -> T and T(a) for A ~> T(a)
- abstract def inducDataTyp(w: Typ[H], xs: Func[H, Typ[Cod]])(cons: ConstructorType): Typ[InducDataType]
domain containing the induction data for the constructor, i.e., the HoTT type of the induction data.
domain containing the induction data for the constructor, i.e., the HoTT type of the induction data.
- Definition Classes
- ConstructorPattern
- abstract def recDataTyp(w: Typ[H], x: Typ[Cod]): Typ[RecDataType]
domain containing the recursion data for the constructor, i.e., the HoTT type of recursion data.
domain containing the recursion data for the constructor, i.e., the HoTT type of recursion data.
- Definition Classes
- ConstructorPattern
- abstract def subs(x: Term, y: Term): ConstructorPattern[Cod, CT, H]
- Definition Classes
- ConstructorPattern
- abstract val univLevel: Int
- Definition Classes
- ConstructorPattern
- abstract def withCod[CC <: Term with Subs[CC]](w: Typ[H]): ConstructorPattern[CC, ConstructorType, H]
changes codomain and propagates changes to other types.
changes codomain and propagates changes to other types.
- Definition Classes
- ConstructorPattern
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- Implicit
- This member is added by an implicit conversion from RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H] toany2stringadd[RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H]] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
- def -->:(that: IdW[_]): FuncPtn[Cod, H, CT, H]
- Definition Classes
- ConstructorPattern
- def -->:[F <: Term with Subs[F]](that: IterFuncPtn[H, Cod, F]): FuncPtn[Cod, F, CT, H]
function pattern.
function pattern.
- Definition Classes
- ConstructorPattern
- def ->[B](y: B): (RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H], B)
- Implicit
- This member is added by an implicit conversion from RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H] toArrowAssoc[RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
- def ->:[T <: Term with Subs[T]](tail: Typ[T]): CnstFncPtn[T, Cod, CT, H]
- Definition Classes
- ConstructorPattern
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- def cons(tp: => Typ[H]): Constructor.ConstructorType
- Definition Classes
- ConstructorPattern
- def cons(tp: => Typ[H], name: AnySym): CT
- Definition Classes
- ConstructorPattern
- def constructor(tp: => Typ[H], name: AnySym): ConstructorDefn[ConstructorType, Cod, H]
constructor for this pattern given inductive type and name.
constructor for this pattern given inductive type and name.
- Definition Classes
- ConstructorPattern
- def ensuring(cond: (RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H]) => Boolean, msg: => Any): RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H]
- Implicit
- This member is added by an implicit conversion from RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H] toEnsuring[RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H]) => Boolean): RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H]
- Implicit
- This member is added by an implicit conversion from RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H] toEnsuring[RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H]
- Implicit
- This member is added by an implicit conversion from RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H] toEnsuring[RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H]
- Implicit
- This member is added by an implicit conversion from RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H] toEnsuring[RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H] toStringFormat[RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H]] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def inducDefCase(cons: ConstructorType, data: InducDataType, f: => FuncLike[H, Cod]): (H) => Option[Cod]
given a term, matches to see if this is the image of a given (quasi)-constructor, with
this
constructor pattern.given a term, matches to see if this is the image of a given (quasi)-constructor, with
this
constructor pattern. optionally returns simplification (if the term matches).- cons
constructor, actually quasi-constructor, with which to match.
- data
definition data for the image of the constructor.
- f
the function being defined inductively, to be used recursively in definition.
- Definition Classes
- RecursiveConstructorPattern → ConstructorPattern
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def newconstructor(tp: Typ[H]): Constructor[Cod, H]
constructor for this pattern given inductive type, with a name symbol generated.
constructor for this pattern given inductive type, with a name symbol generated.
- Definition Classes
- ConstructorPattern
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def recDefCase(cons: ConstructorType, data: RecDataType, f: => Func[H, Cod]): (H) => Option[Cod]
given a term, matches to see if this is the image of a given (quasi)-constructor, with
this
constructor pattern.given a term, matches to see if this is the image of a given (quasi)-constructor, with
this
constructor pattern. optionally returns simplification (if the term matches), determined by the recursion data.- cons
constructor, actually quasi-constructor, with which to match.
- data
definition data for the image of the constructor.
- f
the function being defined recursively, to be used recursively in definition.
- Definition Classes
- RecursiveConstructorPattern → ConstructorPattern
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- def ~>:[T <: Term with Subs[T]](tailVar: T): CnstDepFuncPtn[T, (<refinement>.this)#RecDataType, (<refinement>.this)#InducDataType, Cod, CT, H]
- Definition Classes
- ConstructorPattern
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
- def →[B](y: B): (RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H], B)
- Implicit
- This member is added by an implicit conversion from RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H] toArrowAssoc[RecursiveConstructorPattern[Cod, ArgT, HeadT, CT, H]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.