TypeVarKind

scalus.compiler.sir.SIRType.TypeVarKind
See theTypeVarKind companion object

Kind of a type variable, controlling its representation during lowering.

Attributes

Companion
object
Graph
Supertypes
trait Enum
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Members list

Type members

Enum entries

case Fixed extends TypeVarKind

Type variable with a fixed representation determined by the lowering context. The representation is chosen based on the concrete type when known, or defaults to Data when the type is abstract.

Type variable with a fixed representation determined by the lowering context. The representation is chosen based on the concrete type when known, or defaults to Data when the type is abstract.

Attributes

case Transparent extends TypeVarKind

Unknown representation. The inliner substitutes the caller's concrete repr at the inlining site. Used by public-facing intrinsic dispatcher signatures (IntrinsicsUplcConstrList, IntrinsicsNativeList, etc.) and by builtin UPLC functions (e.g., headList, chooseList).

Unknown representation. The inliner substitutes the caller's concrete repr at the inlining site. Used by public-facing intrinsic dispatcher signatures (IntrinsicsUplcConstrList, IntrinsicsNativeList, etc.) and by builtin UPLC functions (e.g., headList, chooseList).

Attributes

case Unwrapped extends TypeVarKind

Value travels in the concrete type's default representation; no wrapping is ever applied. The repr is looked up via lctx.typeUnifyEnv.filledTypes at every representation-picking site. Used by internal implementation modules (UplcConstrListOperations, NativeListOperations, etc.) whose bodies are polymorphic but never Data-wrap their type-param values.

Value travels in the concrete type's default representation; no wrapping is ever applied. The repr is looked up via lctx.typeUnifyEnv.filledTypes at every representation-picking site. Used by internal implementation modules (UplcConstrListOperations, NativeListOperations, etc.) whose bodies are polymorphic but never Data-wrap their type-param values.

Attributes