Packages

sealed trait ConstructorShape[S <: HList, H <: Term with Subs[H], ConstructorType <: Term with Subs[ConstructorType]] extends AnyRef

The introduction rule for an inductive type, as a function of the type; typically (A -> B -> W)-> C -> W -> (D -> W) -> W as a function of W May have Pi-types instead of function types.

Usually constructed using the DSL in TLImplicits

S

formal type to capture information at type level

H

scala type of the terms of the inductive type.

ConstructorType

scala type of a constructor (introduction rule) corresponding to this pattern.

Linear Supertypes
AnyRef, Any
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ConstructorShape
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract def apply(tp: Typ[H]): Typ[ConstructorType]

    returns HoTT type of the introduction rule given the (inductive) type W (to be the head).

  2. abstract val introArgs: Int
  3. abstract def mapper[Cod <: Term with Subs[Cod]]: ConstructorPatternMapper[S, Cod, ConstructorType, H, RecDataType, 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.

  4. abstract def subs(x: Term, y: Term): ConstructorShape[S, H, ConstructorType]

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String
    Implicit
    This member is added by an implicit conversion from ConstructorShape[S, H, ConstructorType] toany2stringadd[ConstructorShape[S, H, ConstructorType]] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def -->:(that: IdShape.type): FuncConsShape[S, H, ConstructorType, H]

    returns shape that -> this' where that must be the shape for inductive type W

  5. def -->:[F <: Term with Subs[F]](that: IterFuncShape[H, F]): FuncConsShape[S, H, ConstructorType, F]

    returns shape that -> this' where that is of the form W, A -> W etc; invoking this is an error if we that is independent of W

  6. def ->[B](y: B): (ConstructorShape[S, H, ConstructorType], B)
    Implicit
    This member is added by an implicit conversion from ConstructorShape[S, H, ConstructorType] toArrowAssoc[ConstructorShape[S, H, ConstructorType]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  7. def ->:[T <: Term with Subs[T]](tail: Typ[T]): CnstFuncConsShape[S, H, ConstructorType, T, Nothing]

    returns shape tail ->: this where tail must be independent of the inductive type W being defined.

  8. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  9. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  10. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  11. def ensuring(cond: (ConstructorShape[S, H, ConstructorType]) => Boolean, msg: => Any): ConstructorShape[S, H, ConstructorType]
    Implicit
    This member is added by an implicit conversion from ConstructorShape[S, H, ConstructorType] toEnsuring[ConstructorShape[S, H, ConstructorType]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  12. def ensuring(cond: (ConstructorShape[S, H, ConstructorType]) => Boolean): ConstructorShape[S, H, ConstructorType]
    Implicit
    This member is added by an implicit conversion from ConstructorShape[S, H, ConstructorType] toEnsuring[ConstructorShape[S, H, ConstructorType]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  13. def ensuring(cond: Boolean, msg: => Any): ConstructorShape[S, H, ConstructorType]
    Implicit
    This member is added by an implicit conversion from ConstructorShape[S, H, ConstructorType] toEnsuring[ConstructorShape[S, H, ConstructorType]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  14. def ensuring(cond: Boolean): ConstructorShape[S, H, ConstructorType]
    Implicit
    This member is added by an implicit conversion from ConstructorShape[S, H, ConstructorType] toEnsuring[ConstructorShape[S, H, ConstructorType]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  15. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  17. def formatted(fmtstr: String): String
    Implicit
    This member is added by an implicit conversion from ConstructorShape[S, H, ConstructorType] toStringFormat[ConstructorShape[S, H, ConstructorType]] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  18. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  19. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  20. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  21. def lift[Cod <: Term with Subs[Cod], RecDataType <: Term with Subs[RecDataType], InducDataType <: Term with Subs[InducDataType]](implicit mp: ConstructorPatternMapper[S, Cod, ConstructorType, H, RecDataType, InducDataType]): ConstructorPatternMap[Cod, ConstructorType, H, RecDataType, InducDataType]

    lift to ConstructorPatternMap using an implicit ConstructorPatternMapper, which could from the mapper method.

  22. def mapped[Cod <: Term with Subs[Cod]]: ConstructorPatternMap[Cod, ConstructorType, 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.

  23. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  24. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  25. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  26. def symbcons(name: AnySym, tp: Typ[H]): symbcons._1.type.Obj with Subs[symbcons._1.type.Obj] forSome {val _1: Typ[ConstructorType]}

    returns term giving introduction rule given inductive type and name

  27. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  28. def toString(): String
    Definition Classes
    AnyRef → Any
  29. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  30. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  31. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  32. def ~>:[T <: Term with Subs[T]](tailVar: T): CnstDepFuncConsShape[S, H, ConstructorType, T, Nothing]

    returns dependent shape tail ~>: this where tail must be independent of the inductive type W being defined.

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated
  2. def [B](y: B): (ConstructorShape[S, H, ConstructorType], B)
    Implicit
    This member is added by an implicit conversion from ConstructorShape[S, H, ConstructorType] toArrowAssoc[ConstructorShape[S, H, ConstructorType]] 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.

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd fromConstructorShape[S, H, ConstructorType] to any2stringadd[ConstructorShape[S, H, ConstructorType]]

Inherited by implicit conversion StringFormat fromConstructorShape[S, H, ConstructorType] to StringFormat[ConstructorShape[S, H, ConstructorType]]

Inherited by implicit conversion Ensuring fromConstructorShape[S, H, ConstructorType] to Ensuring[ConstructorShape[S, H, ConstructorType]]

Inherited by implicit conversion ArrowAssoc fromConstructorShape[S, H, ConstructorType] to ArrowAssoc[ConstructorShape[S, H, ConstructorType]]

Ungrouped