package types
- Alphabetic
- Public
- All
Type Members
-
case class
Arrow(source: Type, target: Type) extends Type with Product with Serializable
Represents arrows between types.
Represents arrows between types. Intersections have precedence level 9, so all operators with levels below 9 need parenthesis when converted into strings.
-
case class
Constructor(name: String, arguments: Type*) extends Type with Product with Serializable
Represents intersection type constructors.
-
trait
ConstructorSyntax extends AnyRef
Type class for syntactic sugar for intersection type constructors.
-
trait
FiniteSubstitutionSpace extends AnyRef
Things which induce finite spaces of substitutions.
-
case class
Intersection(sigma: Type, tau: Type) extends Type with Product with Serializable
Represents intersections between types.
Represents intersections between types. Intersections have precedence level 10, so all operators with levels below 10 need parenthesis when converted into strings.
-
sealed
trait
Kinding extends (Variable) ⇒ Finite[Type] with FiniteSubstitutionSpace
Kindings restrict variables by enumerating all of their possible substitutions.
-
trait
Minimizable extends AnyRef
Type class to compute a minimal set wrt.
Type class to compute a minimal set wrt. some metric adhering to some constraint.
-
sealed
trait
NonEmptyKinding extends Kinding
Non empty kindings with a marked root variable.
-
sealed
trait
NonEmptyTaxonomy extends Taxonomy
A non empty taxonomy with a marked root node
-
trait
Organized extends AnyRef
A type is organized iff it is syntactically identical to an intersection of paths.
-
sealed
trait
Path extends Organized
A path
pconforms to the syntax:p ::= 'C() | 'C((Omega, )* p (, Omega)*) | sigma_1 =>: ... =>: sigma_k =>: pwhere eachsigma_iis an arbitrary intersection type without variables. -
case class
SubtypeEnvironment(taxonomicSubtypesOf: Map[String, Set[String]]) extends Product with Serializable
Subtyping based on a taxonomy of type constructors.
Subtyping based on a taxonomy of type constructors.
- taxonomicSubtypesOf
the taxonomy, where each constructor name is mapped to its directly smaller successors.
-
sealed
trait
Taxonomy extends (String) ⇒ Set[String]
Taxonomies are relations between constructor names.
Taxonomies are relations between constructor names. For a taxonomy t we have
'C <= 'Dif"D"is int("C"). Subtyping will arange the transitive reflexive closure of taxonomies. -
trait
ToConstructorSyntax extends ToTypeSyntax
Instances of
ConstructorSyntaxfor symbols, so we can use 'A('B) notation. -
trait
ToTypeSyntax extends AnyRef
Instances of
TypeSyntaxfor intersection types. -
sealed
trait
Type extends AnyRef
Abstract base for all intersection types.
-
trait
TypeSyntax extends AnyRef
Type class for syntactic sugar to construct intersection types.
-
case class
Variable(name: String) extends Type with Product with Serializable
Variables in intersection type schemes.
Value Members
-
object
FiniteSubstitutionSpace
Helpers to construct finite substitution spaces.
-
object
Kinding
Helper object to construct Kinding.
-
object
Omega extends Type with Organized with Product with Serializable
The universal intersection type ω, which is a supertype of everything.
-
object
Organized
Helper methods to organize types.
-
object
Path
Helper methods to (de-)construct paths from (/into) arguments and targets of arrows.
-
object
Taxonomy
Helper to construct new taxonomies.
-
object
syntax extends ToConstructorSyntax
Instances of syntactic sugar for intersection types.