hydra.dsl.core

package hydra.dsl.core

Members list

Value members

Concrete methods

def application(function: TypedTerm[Term])(argument: TypedTerm[Term]): TypedTerm[Application]
def binding(name: TypedTerm[Name])(term: TypedTerm[Term])(typeScheme: TypedTerm[Option[TypeScheme]]): TypedTerm[Binding]
def caseStatement(typeName: TypedTerm[Name])(default: TypedTerm[Option[Term]])(cases: TypedTerm[Seq[CaseAlternative]]): TypedTerm[CaseStatement]
def field(name: TypedTerm[Name])(term: TypedTerm[Term]): TypedTerm[Field]
def fieldWithName(original: TypedTerm[Field])(newVal: TypedTerm[Name]): TypedTerm[Field]
def fieldWithTerm(original: TypedTerm[Field])(newVal: TypedTerm[Term]): TypedTerm[Field]
def lambda(parameter: TypedTerm[Name])(domain: TypedTerm[Option[Type]])(body: TypedTerm[Term]): TypedTerm[Lambda]
def lambdaWithDomain(original: TypedTerm[Lambda])(newVal: TypedTerm[Option[Type]]): TypedTerm[Lambda]
def let(bindings: TypedTerm[Seq[Binding]])(body: TypedTerm[Term]): TypedTerm[Let]
def letWithBindings(original: TypedTerm[Let])(newVal: TypedTerm[Seq[Binding]]): TypedTerm[Let]
def letWithBody(original: TypedTerm[Let])(newVal: TypedTerm[Term]): TypedTerm[Let]
def literalDecimal(x: TypedTerm[BigDecimal]): TypedTerm[Literal]
def name(x: TypedTerm[String]): TypedTerm[Name]
def projection(typeName: TypedTerm[Name])(fieldName: TypedTerm[Name]): TypedTerm[Projection]
def record(typeName: TypedTerm[Name])(fields: TypedTerm[Seq[Field]]): TypedTerm[Record]
def recordWithFields(original: TypedTerm[Record])(newVal: TypedTerm[Seq[Field]]): TypedTerm[Record]
def termEither(x: TypedTerm[Either[Term, Term]]): TypedTerm[Term]
def termSet(x: TypedTerm[Set[Term]]): TypedTerm[Term]
def typeScheme(variables: TypedTerm[Seq[Name]])(body: TypedTerm[Type])(constraints: TypedTerm[Map[Name, TypeVariableConstraints]]): TypedTerm[TypeScheme]
def unName(x: TypedTerm[Name]): TypedTerm[String]

Concrete fields

lazy val letLet: TypedName[Let]
lazy val nameName: TypedName[Name]
lazy val termTerm: TypedName[Term]
lazy val termUnit: TypedTerm[Term]
lazy val typeType: TypedName[Type]
lazy val typeUnit: TypedTerm[Type]
lazy val typeVoid: TypedTerm[Type]