UplcConstrListOperations
UplcConstr list operations — recursive implementations with local go functions.
Every List[_] / Option[_] in the signatures carries a type-level @UplcRepr(UplcRepresentation.UplcConstr) annotation (List[A] @UplcRepr(UplcConstr)). The plugin's SIRTyper.sirTypeInEnv handles this AnnotatedType and wraps the SIR type with SIRType.Annotated(..., uplcRepr=UplcConstr). Unlike symbol-level annotations (which only wrap the DefDef's declared return), type-level annotations land in the SIR type itself, so a local def go(lst: List[A] @UplcRepr(UplcConstr)): List[A] @UplcRepr(UplcConstr) has a rhs.tp that is fully annotated on both in/out — matching what lowerLet:560 reads when computing rhsRepr.
Type parameters remain @UplcRepr(TypeVar(Unwrapped)): element bytes flow through in A's stable default representation.
Attributes
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type