hydra.lisp.coder

Members list

Value members

Concrete methods

def dialectCadr(d: Dialect): String
def dialectCar(d: Dialect): String
def dialectEqual(d: Dialect): String
def dialectSupportsLetrec(d: Dialect): Boolean
def encodeApplication[T0, T1](dialect: Dialect)(overlaySubs: Set[String])(cx: T0)(g: Graph)(rawFun: Term)(rawArg: Term): Either[T1, Expression]
def encodeLambdaTerm[T0, T1](dialect: Dialect)(overlaySubs: Set[String])(cx: T0)(g: Graph)(lam: Lambda): Either[T1, Expression]
def encodeLetAsLambdaApp[T0, T1](dialect: Dialect)(overlaySubs: Set[String])(cx: T0)(g: Graph)(bindings: Seq[Binding])(body: Term): Either[T1, Expression]
def encodeLetAsNative[T0, T1](dialect: Dialect)(overlaySubs: Set[String])(cx: T0)(g: Graph)(bindings: Seq[Binding])(body: Term): Either[T1, Expression]
def encodeProjectionElim[T0, T1](dialect: Dialect)(overlaySubs: Set[String])(cx: T0)(g: Graph)(proj: Projection)(marg: Option[Term]): Either[T1, Expression]
def encodeTerm[T0, T1](dialect: Dialect)(overlaySubs: Set[String])(cx: T0)(g: Graph)(term: Term): Either[T1, Expression]
def encodeTermDefinition[T0, T1](dialect: Dialect)(overlaySubs: Set[String])(cx: T0)(g: Graph)(tdef: TermDefinition): Either[T1, TopLevelFormWithComments]
def encodeType[T0, T1, T2](cx: T0)(g: T1)(t: Type): Either[T2, TypeSpecifier]
def encodeTypeBody[T0](lname: String)(origTyp: Type)(typ: Type): Either[T0, TopLevelFormWithComments]
def encodeTypeDefinition[T0, T1, T2](cx: T0)(g: T1)(tdef: TypeDefinition): Either[T2, TopLevelFormWithComments]
def encodeUnionElim[T0, T1](dialect: Dialect)(overlaySubs: Set[String])(cx: T0)(g: Graph)(cs: CaseStatement)(marg: Option[Term]): Either[T1, Expression]
def encodeUnwrapElim[T0, T1](dialect: Dialect)(overlaySubs: Set[String])(cx: T0)(g: Graph)(name: Name)(marg: Option[Term]): Either[T1, Expression]
def isPrimitiveRef(primName: String)(term: Term): Boolean
def lazyFlagsForPrimitiveTerm(g: Graph)(headTerm: Term): Seq[Boolean]
def lispApp(fun: Expression)(args: Seq[Expression]): Expression
def lispKeyword(name: String): Expression
def lispLambdaExpr(params: Seq[String])(body: Expression): Expression
def lispListExpr(elements: Seq[Expression]): Expression
def lispNamedLambdaExpr(name: String)(params: Seq[String])(body: Expression): Expression
def lispSymbol(name: String): Symbol
def lispVar(name: String): Expression
def moduleImports(dialect: Dialect)(overlaySubs: Set[String])(focusNs: ModuleName)(defs: Seq[Definition]): Seq[ImportDeclaration]
def moduleToLisp[T0, T1](dialect: Dialect)(overlaySubs: Set[String])(mod: Module)(defs0: Seq[Definition])(cx: T0)(g: Graph): Either[T1, Program]
def primHeadName(term: Term): Option[Name]
def primIsLazyAt(g: Graph)(headTerm: Term)(i: Int): Boolean
def qualifiedSnakeName(name: Name): String
def qualifiedTypeName(name: Name): String

Concrete fields