Type

morphir.ir.Type
object Type

Generated based on IR.Type

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Type.type

Members list

Type members

Classlikes

object Definition

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Definition.type
sealed trait Definition[A]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
final case class DerivedTypeSpecificationDetails[A](baseType: Type[A], fromBaseType: FQName, toBaseType: FQName)

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
final case class Field[A](name: Name, tpe: Type[A])

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object Specification

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
sealed trait Specification[A]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Type

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Type.type
sealed trait Type[A]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class ExtensibleRecord[A]
class Function[A]
class Record[A]
class Reference[A]
class Tuple[A]
class Unit[A]
class Variable[A]
Show all

Types

type Constructor[A] = (Name, ConstructorArgs[A])
type ConstructorArgs[A] = List[(Name, Type[A])]
type Constructors[A] = Map[Name, ConstructorArgs[A]]

Value members

Concrete methods

def _toString[A](tpe: Type[A]): String
def collectReferences[Ta](tpe: Type[Ta]): Set[FQName]
def collectReferencesFromDefintion[Ta](typeDef: Definition[Ta]): Set[FQName]
def collectVariables[Ta](tpe: Type[Ta]): Set[Name]
def customTypeDefinition[A](typeParams: List[Name])(ctors: AccessControlled[Constructors[A]]): Definition[A]
def customTypeSpecification[A](typeParams: List[Name])(ctors: Constructors[A]): Specification[A]
def eraseAttributes[A](typeDef: Definition[A]): Definition[Unit]
def extensibleRecord[A](attributes: A)(variableName: Name)(fieldTypes: List[Field[A]]): Type[A]
def function[A](attributes: A)(argumentType: Type[A])(returnType: Type[A]): Type[A]
def mapDefinition[A, B, E](f: (Type[A]) => Result[E, Type[B]])(_def: Definition[A]): Result[List[E], Definition[B]]
def mapDefinitionAttributes[A, B](f: A => B)(_def: Definition[A]): Definition[B]
def mapFieldName[A](f: Name => Name)(field: Field[A]): Field[A]
def mapFieldType[A, B](f: (Type[A]) => Type[B])(field: Field[A]): Field[B]
def mapSpecificationAttributes[A, B](f: A => B)(spec: Specification[A]): Specification[B]
def mapTypeAttributes[A, B](f: A => B)(tpe: Type[A]): Type[B]
def opaqueTypeSpecification[A](typeParams: List[Name]): Specification[A]
def record[A](attributes: A)(fieldTypes: List[Field[A]]): Type[A]
def reference[A](attributes: A)(typeName: FQName)(typeParameters: List[Type[A]]): Type[A]
def substituteTypeVariables[Ta](mapping: Map[Name, Type[Ta]])(original: Type[Ta]): Type[Ta]
def tuple[A](attributes: A)(elementTypes: List[Type[A]]): Type[A]
def typeAliasDefinition[A](typeParams: List[Name])(typeExp: Type[A]): Definition[A]
def typeAliasSpecification[A](typeParams: List[Name])(typeExp: Type[A]): Specification[A]
def typeAttributes[A](tpe: Type[A]): A
def unit[A](attributes: A): Type[A]
def variable[A](attributes: A)(name: Name): Type[A]

Concrete fields

val CustomTypeDefinition: CustomTypeDefinition.type
val CustomTypeSpecification: CustomTypeSpecification.type
val DerivedTypeSpecification: DerivedTypeSpecification.type
val ExtensibleRecord: ExtensibleRecord.type
val Function: Function.type
val OpaqueTypeSpecification: OpaqueTypeSpecification.type
val Record: Record.type
val Reference: Reference.type
val Tuple: Tuple.type
val TypeAliasDefinition: TypeAliasDefinition.type
val TypeAliasSpecification: TypeAliasSpecification.type
val Unit: Unit.type
val Variable: Variable.type