Package

org.combinators.cls

types

Permalink

package types

Visibility
  1. Public
  2. All

Type Members

  1. case class Arrow(source: Type, target: Type) extends Type with scala.Product with Serializable

    Permalink

    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, argument: Type = Omega) extends Type with scala.Product with Serializable

    Permalink

    Represents intersection type constructors.

  3. trait ConstructorSyntax extends AnyRef

    Permalink

    Type class for syntactic sugar for intersection type constructors.

  4. trait FiniteSubstitutionSpace extends AnyRef

    Permalink

    Things which induce finite spaces of substitutions.

  5. case class Intersection(sigma: Type, tau: Type) extends Type with scala.Product with Serializable

    Permalink

    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

    Permalink

    Kindings restrict variables by enumerating all of their possible substitutions.

  7. trait Minimizable extends AnyRef

    Permalink

    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

    Permalink

    Non empty kindings with a marked root variable.

  9. sealed trait NonEmptyTaxonomy extends Taxonomy

    Permalink

    A non empty taxonomy with a marked root node

  10. trait Organized extends AnyRef

    Permalink

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

  11. sealed trait Path extends Organized

    Permalink

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

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

  12. case class Product(sigma: Type, tau: Type) extends Type with scala.Product with Serializable

    Permalink

    Represents a product of two types.

  13. case class SubtypeEnvironment(taxonomicSubtypesOf: Map[String, Set[String]]) extends scala.Product with Serializable

    Permalink

    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.

  14. sealed trait Taxonomy extends (String) ⇒ Set[String]

    Permalink

    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.

  15. trait ToConstructorSyntax extends ToTypeSyntax

    Permalink

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

  16. trait ToTypeSyntax extends AnyRef

    Permalink

    Instances of TypeSyntax for intersection types.

  17. sealed trait Type extends AnyRef

    Permalink

    Abstract base for all intersection types.

  18. trait TypeSyntax extends AnyRef

    Permalink

    Type class for syntactic sugar to construct intersection types.

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

    Permalink

    Variables in intersection type schemes.

Value Members

  1. object Constructor extends Serializable

    Permalink
  2. object FiniteSubstitutionSpace

    Permalink

    Helpers to construct finite substitution spaces.

  3. object Kinding

    Permalink

    Helper object to construct Kinding.

  4. object Omega extends Type with Organized with scala.Product with Serializable

    Permalink

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

  5. object Organized

    Permalink

    Helper methods to organize types.

  6. object Path

    Permalink

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

  7. object Taxonomy

    Permalink

    Helper to construct new taxonomies.

  8. object Type

    Permalink

    Standard operations on types.

  9. object syntax extends ToConstructorSyntax

    Permalink

    Instances of syntactic sugar for intersection types.

Ungrouped