Value
morphir.ir.Value
object Value
Generated based on IR.Value
Attributes
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
Value.type
Members list
Type members
Classlikes
final case class Definition[Ta, Va](inputTypes: List[(Name, Va, Type[Ta])], outputType: Type[Ta], body: Value[Ta, Va])
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
object Pattern
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
class AsPattern[A]class ConstructorPattern[A]class EmptyListPattern[A]class HeadTailPattern[A]class LiteralPattern[A]class TuplePattern[A]class UnitPattern[A]class WildcardPattern[A]Show all
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
object Value
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
Show all
Value members
Concrete methods
def constructorPattern[A](attributes: A)(constructorName: FQName)(argumentPatterns: List[Pattern[A]]): Pattern[A]
def ifThenElse[Ta, Va](attributes: Va)(condition: Value[Ta, Va])(thenBranch: Value[Ta, Va])(elseBranch: Value[Ta, Va]): Value[Ta, Va]
def indexedMapListHelp[A, B](f: Int => A => (B, Int))(baseIndex: Int)(elemList: List[A]): (List[B], Int)
def indexedMapPattern[A, B](f: Int => A => B)(baseIndex: Int)(pattern: Pattern[A]): (Pattern[B], Int)
def indexedMapValue[A, B, Ta](f: Int => A => B)(baseIndex: Int)(value: Value[Ta, A]): (Value[Ta, B], Int)
def letDef[Ta, Va](attributes: Va)(valueName: Name)(valueDefinition: Definition[Ta, Va])(inValue: Value[Ta, Va]): Value[Ta, Va]
def letDestruct[Ta, Va](attributes: Va)(pattern: Pattern[Va])(valueToDestruct: Value[Ta, Va])(inValue: Value[Ta, Va]): Value[Ta, Va]
def letRec[Ta, Va](attributes: Va)(valueDefinitions: Map[Name, Definition[Ta, Va]])(inValue: Value[Ta, Va]): Value[Ta, Va]
def mapDefinition[E, Ta, Va](mapType: (Type[Ta]) => Result[E, Type[Ta]])(mapValue: (Value[Ta, Va]) => Result[E, Value[Ta, Va]])(_def: Definition[Ta, Va]): Result[List[E], Definition[Ta, Va]]
def mapDefinitionAttributes[Ta, Tb, Va, Vb](f: Ta => Tb)(g: Va => Vb)(d: Definition[Ta, Va]): Definition[Tb, Vb]
def patternMatch[Ta, Va](attributes: Va)(branchOutOn: Value[Ta, Va])(cases: List[(Pattern[Va], Value[Ta, Va])]): Value[Ta, Va]
def reduceValueBottomUp[Accumulator, TypeAttribute, ValueAttribute](mapNode: (Value[TypeAttribute, ValueAttribute]) => (List[Accumulator]) => Accumulator)(currentValue: Value[TypeAttribute, ValueAttribute]): Accumulator
def replaceVariables[Ta, Va](value: Value[Ta, Va])(mapping: Map[Name, Value[Ta, Va]]): Value[Ta, Va]
def rewriteValue[Ta, Va](f: (Value[Ta, Va]) => Maybe[Value[Ta, Va]])(value: Value[Ta, Va]): Value[Ta, Va]
def uncurryApply[Ta, Va](fun: Value[Ta, Va])(lastArg: Value[Ta, Va]): (Value[Ta, Va], List[Value[Ta, Va]])
Concrete fields
Implicits
Implicits
In this article