TypeModule

org.finos.morphir.ir.TypeModule
trait TypeModule

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Type
Self type

Members list

Type members

Classlikes

sealed case class Constructors[+Attribs](toMap: Map[Name, Chunk[(Name, Type[Attribs])]])

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
Self type
Constructors[Attribs]
object Constructors

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
object Definition

Attributes

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

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class CustomType[Attribs]
class TypeAlias[Attribs]
Self type
Definition[Attribs]

Attributes

Supertypes
class Object
trait Matchable
class Any
object Specification

Attributes

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

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
Self type
Specification[Attribs]

Types

final type Field[+A] = Field[A]
final type FieldK[F[_], +A] = FieldK[F, A]
final type FieldT[+A] = FieldT[A]
final type Type[+A] = Type[A]
final type UConstructors = Constructors[Unit]
final type UDefinition = Definition[Unit]
final type USpecification = Specification[Unit]
final type UType = Type[Unit]

Value members

Concrete methods

final def curriedFunction(paramTypes: List[UType], returnType: UType): UType
final def defineField(name: Name, fieldType: UType): FieldT[Unit]
final def defineField(name: String, fieldType: UType): FieldT[Unit]
final def emptyTuple[A](attributes: A)(implicit ev: NeedsAttributes[A]): Type[A]
def extensibleRecord[A](attributes: A, name: Name, fields: List[FieldT[A]])(implicit ev: NeedsAttributes[A]): Type[A]
final def extensibleRecord[A](attributes: A, name: String, fields: List[FieldT[A]])(implicit ev: NeedsAttributes[A]): Type[A]
final def extensibleRecord[A](attributes: A, name: String, field: FieldT[A], fields: FieldT[A]*)(implicit ev: NeedsAttributes[A]): Type[A]
final def extensibleRecord[A](attributes: A, name: Name, fields: (String, Type[A])*)(implicit ev: NeedsAttributes[A]): Type[A]
final def extensibleRecord[A](attributes: A, name: String, fields: (String, Type[A])*)(implicit ev: NeedsAttributes[A]): Type[A]
final def extensibleRecord(name: Name, fields: List[FieldT[Unit]]): UType
final def extensibleRecord(name: String, fields: List[FieldT[Unit]]): UType
final def extensibleRecord(name: Name, fields: (String, UType)*): UType
final def extensibleRecord(name: String, fields: (String, UType)*): UType
final def extensibleRecordWithFields(name: Name, fields: FieldT[Unit]*): UType
final def extensibleRecordWithFields(name: String, fields: FieldT[Unit]*): UType
final def field[A](name: String, tpe: Type[A]): FieldT[A]
final def field[A](name: Name, tpe: Type[A]): FieldT[A]
final def field[A](tuple: (String, Type[A])): FieldT[A]
final def fields[A](fields: Field[A]*): List[Field[A]]
final def function[A](attributes: A, argumentType: Type[A], returnType: Type[A])(implicit ev: NeedsAttributes[A]): Type[A]
final def function(argumentType: UType, returnType: UType): UType
final def mapTypeAttributes[A, B](tpe: Type[A])(f: A => B): Type[B]
final def record[A](attributes: A, fields: List[FieldT[A]])(implicit ev: NeedsAttributes[A]): Type[A]
final def record(fields: List[FieldT[Unit]]): UType
final def record(field: FieldT[Unit], fields: FieldT[Unit]*): UType
final def record(fields: (String, UType)*): UType
final def reference[A](attributes: A, typeName: FQName, typeParams: List[Type[A]])(implicit ev: NeedsAttributes[A]): Type[A]
final def reference[A](attributes: A, typeName: FQName)(implicit ev: NeedsAttributes[A]): Type[A]
final def reference[A](attributes: A, typeName: FQName, firstTypeParam: Type[A], otherTypeParams: Type[A]*)(implicit ev: NeedsAttributes[A]): Type[A]
final def reference[A](attributes: A, typeName: String, typeParams: List[Type[A]])(implicit ev: NeedsAttributes[A]): Reference[A]
final def reference[A](attributes: A, typeName: String)(implicit ev: NeedsAttributes[A]): Reference[A]
final def reference[A](attributes: A, typeName: String, firstTypeParam: Type[A], otherTypeParams: Type[A]*)(implicit ev: NeedsAttributes[A]): Reference[A]
final def reference(typeName: FQName, typeParams: List[UType]): UType
final def reference(typeName: FQName, typeParams: UType*): UType
final def reference(typeName: String, typeParams: List[UType]): UType
final def reference(typeName: String, typeParams: UType*): UType
final def reference(packageName: String, moduleName: String, typeName: String, typeParams: UType*): UType
final def reference(packageName: String, moduleName: String, typeName: String, typeParams: List[UType]): UType
final def tuple(elements: List[UType]): UType
final def tupleVar(elements: UType*): UType
final def tupleWithAttr[A](attributes: A, elements: List[Type[A]])(implicit ev: NeedsAttributes[A]): Type[A]
final def tupleWithAttr[A](attributes: A, elements: Type[A]*)(implicit ev: NeedsAttributes[A]): Type[A]
final def typeAttributes[A](tpe: Type[A]): A
final def unit[A](attributes: A)(implicit ev: NeedsAttributes[A]): Type[A]
final def variable[A](attributes: A, name: Name)(implicit ev: NeedsAttributes[A]): Type[A]
final def variable[A](attributes: A, name: String)(implicit ev: NeedsAttributes[A]): Type[A]
final def variable(name: Name): UType
final def variable(name: String): UType

Concrete fields

final val Field: Field.type
final val FieldK: Field.type
final val FieldT: FieldT.type
final val Type: Type.type
final val UConstructors: Constructors.type
final val UDefinition: Definition.type
final val UType: Type.type
lazy val emptyTuple: UType
final lazy val unit: UType
final lazy val unitType: UType