Packages

case class ConstructorSeqTL[SS <: HList, H <: Term with Subs[H], Intros <: HList](seqDom: ConstructorSeqDom[SS, H, Intros], typ: Typ[H]) extends Product with Serializable

Essentially the definition of an inductive type; has all parameters of the definition:

SS

shape sequence - a formal type for lifting information about introduction rules to type level.

H

the scala type of terms in the inductive type typ

Intros

the scala type of the introduction rules We can define functions recursively using the rec method and inductively using the induc method.

seqDom

the sequence of introduction rules.

typ

the inductive type being defined.

Linear Supertypes
Serializable, Product, Equals, AnyRef, Any
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ConstructorSeqTL
  2. Serializable
  3. Product
  4. Equals
  5. AnyRef
  6. 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

Instance Constructors

  1. new ConstructorSeqTL(seqDom: ConstructorSeqDom[SS, H, Intros], typ: Typ[H])

    seqDom

    the sequence of introduction rules.

    typ

    the inductive type being defined.

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 ConstructorSeqTL[SS, H, Intros] toany2stringadd[ConstructorSeqTL[SS, H, Intros]] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (ConstructorSeqTL[SS, H, Intros], B)
    Implicit
    This member is added by an implicit conversion from ConstructorSeqTL[SS, H, Intros] toArrowAssoc[ConstructorSeqTL[SS, H, Intros]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  8. def ensuring(cond: (ConstructorSeqTL[SS, H, Intros]) => Boolean, msg: => Any): ConstructorSeqTL[SS, H, Intros]
    Implicit
    This member is added by an implicit conversion from ConstructorSeqTL[SS, H, Intros] toEnsuring[ConstructorSeqTL[SS, H, Intros]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  9. def ensuring(cond: (ConstructorSeqTL[SS, H, Intros]) => Boolean): ConstructorSeqTL[SS, H, Intros]
    Implicit
    This member is added by an implicit conversion from ConstructorSeqTL[SS, H, Intros] toEnsuring[ConstructorSeqTL[SS, H, Intros]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  10. def ensuring(cond: Boolean, msg: => Any): ConstructorSeqTL[SS, H, Intros]
    Implicit
    This member is added by an implicit conversion from ConstructorSeqTL[SS, H, Intros] toEnsuring[ConstructorSeqTL[SS, H, Intros]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  11. def ensuring(cond: Boolean): ConstructorSeqTL[SS, H, Intros]
    Implicit
    This member is added by an implicit conversion from ConstructorSeqTL[SS, H, Intros] toEnsuring[ConstructorSeqTL[SS, H, Intros]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  12. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. def formatted(fmtstr: String): String
    Implicit
    This member is added by an implicit conversion from ConstructorSeqTL[SS, H, Intros] toStringFormat[ConstructorSeqTL[SS, H, Intros]] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  14. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  15. def induc[C <: Term with Subs[C], RecType <: Term with Subs[RecType], InducType <: Term with Subs[InducType]](Xs: Func[H, Typ[C]])(implicit mapper: ConstructorSeqMapper[SS, C, H, RecType, InducType, Intros]): InducType

    returns the term ind_W, X for inductively defining function to the type family Xs on W from the inductive type W = typ; an implicit mapper is used, which also allows calculation of the type RecType.

    returns the term ind_W, X for inductively defining function to the type family Xs on W from the inductive type W = typ; an implicit mapper is used, which also allows calculation of the type RecType.

    RecType

    not used here, but part of the definition of the mapper.

    InducType

    the type of the induc function returned.

  16. def inducE[C <: Term with Subs[C]](Xs: Func[H, Typ[C]]): InducType forSome {type InducType <: Term with Subs[InducType]}

    Existential typed version of induc to be used at runtime if necessary.

  17. val intros: Intros

    The introduction rules.

  18. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  19. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  20. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  21. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  22. def productElementNames: Iterator[String]
    Definition Classes
    Product
  23. def rec[C <: Term with Subs[C], RecType <: Term with Subs[RecType], InducType <: Term with Subs[InducType]](X: Typ[C])(implicit mapper: ConstructorSeqMapper[SS, C, H, RecType, InducType, Intros]): RecType

    returns the term rec_W, X for recursively defining function to X from the inductive type W = typ; an implicit mapper is used, which also allows calculation of the type RecType.

    returns the term rec_W, X for recursively defining function to X from the inductive type W = typ; an implicit mapper is used, which also allows calculation of the type RecType.

    RecType

    type of the rec function returned;

    InducType

    not used here, but part of the definition of the mapper.

    X

    the codomain to which we wish to define recursive functions - the only one we need to specify;

  24. def recE[C <: Term with Subs[C]](X: Typ[C]): RecType forSome {type RecType <: Term with Subs[RecType]}

    Existential typed version of rec for use at runtime if neccesary.

  25. val seqDom: ConstructorSeqDom[SS, H, Intros]
  26. def subs(x: Term, y: Term): ConstructorSeqTL[SS, H, Intros]
  27. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  28. val typ: Typ[H]
  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 |:[S <: HList, ConstructorType <: Term with Subs[ConstructorType]](head: ConstructorTL[S, H, ConstructorType]): ConstructorSeqTL[::[S, SS], H, ::[ConstructorType, Intros]]

    Prepend to the sequence of introduction rules.

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): (ConstructorSeqTL[SS, H, Intros], B)
    Implicit
    This member is added by an implicit conversion from ConstructorSeqTL[SS, H, Intros] toArrowAssoc[ConstructorSeqTL[SS, H, Intros]] 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 Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd fromConstructorSeqTL[SS, H, Intros] to any2stringadd[ConstructorSeqTL[SS, H, Intros]]

Inherited by implicit conversion StringFormat fromConstructorSeqTL[SS, H, Intros] to StringFormat[ConstructorSeqTL[SS, H, Intros]]

Inherited by implicit conversion Ensuring fromConstructorSeqTL[SS, H, Intros] to Ensuring[ConstructorSeqTL[SS, H, Intros]]

Inherited by implicit conversion ArrowAssoc fromConstructorSeqTL[SS, H, Intros] to ArrowAssoc[ConstructorSeqTL[SS, H, Intros]]

Ungrouped