Packages

package types

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. All

Type Members

  1. 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.

  2. case class Constructor(name: String, arguments: Type*) extends Type with Product with Serializable

    Represents intersection type constructors.

  3. trait ConstructorSyntax extends AnyRef

    Type class for syntactic sugar for intersection type constructors.

  4. trait FiniteSubstitutionSpace extends AnyRef

    Things which induce finite spaces of substitutions.

  5. 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.

  6. sealed trait Kinding extends (Variable) ⇒ Finite[Type] with FiniteSubstitutionSpace

    Kindings restrict variables by enumerating all of their possible substitutions.

  7. 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.

  8. sealed trait NonEmptyKinding extends Kinding

    Non empty kindings with a marked root variable.

  9. sealed trait NonEmptyTaxonomy extends Taxonomy

    A non empty taxonomy with a marked root node

  10. trait Organized extends AnyRef

    A type is organized iff it is syntactically identical to an intersection of paths.

  11. sealed trait Path extends Organized

    A path p conforms to the syntax: p ::= 'C() | 'C((Omega, )* p (, Omega)*) | sigma_1 =>: ... =>: sigma_k =>: p where each sigma_i is an arbitrary intersection type without variables.

  12. 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.

  13. 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 <= 'D if "D" is in t("C"). Subtyping will arange the transitive reflexive closure of taxonomies.

  14. trait ToConstructorSyntax extends ToTypeSyntax

    Instances of ConstructorSyntax for symbols, so we can use 'A('B) notation.

  15. trait ToTypeSyntax extends AnyRef

    Instances of TypeSyntax for intersection types.

  16. sealed trait Type extends AnyRef

    Abstract base for all intersection types.

  17. trait TypeSyntax extends AnyRef

    Type class for syntactic sugar to construct intersection types.

  18. case class Variable(name: String) extends Type with Product with Serializable

    Variables in intersection type schemes.

Value Members

  1. object FiniteSubstitutionSpace

    Helpers to construct finite substitution spaces.

  2. object Kinding

    Helper object to construct Kinding.

  3. object Omega extends Type with Organized with Product with Serializable

    The universal intersection type ω, which is a supertype of everything.

  4. object Organized

    Helper methods to organize types.

  5. object Path

    Helper methods to (de-)construct paths from (/into) arguments and targets of arrows.

  6. object Taxonomy

    Helper to construct new taxonomies.

  7. object syntax extends ToConstructorSyntax

    Instances of syntactic sugar for intersection types.

Ungrouped