Calc

neotype.Calc
See theCalc companion object
enum Calc[A]

Attributes

Companion:
object
Graph
Supertypes
trait Enum
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Known subtypes
case Apply0[A, B]
case Apply1[A, B, C]
case Apply2[A, B, C, D]
case CalcApply[A]
case CalcBlock[A]
case Reference[A]
case MatchExpr[A]
case IfThenElse[A]
case CalcClosure[A]

Members list

Concise view

Type members

Enum entries

final case class Apply0[A, B](calc: Calc[A], op: A => B, show: String => String) extends Calc[B]
final case class Apply1[A, B, C](calc: Calc[A], rhs: Calc[B], op: (A, B) => C, show: (String, String) => String) extends Calc[C]
final case class Apply2[A, B, C, D](calc: Calc[A], lhs: Calc[B], rhs: Calc[C], op: (A, B, C) => D, show: (String, String, String) => String) extends Calc[D]
final case class CalcApply[A](calc: Calc[A], args: List[Calc[_]]) extends Calc[Any]
final case class CalcBlock[A](defs: List[CalcDef[_]], calc: Calc[A]) extends Calc[A]
final case class CalcClosure[A](ctx: Map[String, Any], params: List[String], body: Calc[A]) extends Calc[A]
final case class IfThenElse[A](cond: Calc[Boolean], thenCalc: Calc[A], elseCalc: Calc[A]) extends Calc[A]
final case class MatchExpr[A](expr: Calc[A], cases: List[CalcMatchCase[A]]) extends Calc[A]
final case class Reference[A](name: String) extends Calc[A]
final case class Value[A](value: A)