diff --git a/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__generics.snap b/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__generics.snap index 449b0397..5ad0817c 100644 --- a/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__generics.snap +++ b/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__generics.snap @@ -10,8 +10,8 @@ description: "Code:\n\ntype Either {\n Left(left)\n Right(rig "$ref": "#/definitions/test_module~1Either$ByteArray_test_module~1Interval$Int" } }, - "compiledCode": "590157010000323232323232323232232253330054a22930a9980324811856616c696461746f722072657475726e65642066616c73650013656323253330053370e90000008992999805000802899299980598068010a4c00c64a66666601c00200c00c00c00c26eb8004c02c004c020dd50010a99980299b87480080044c94ccc0280040144c94ccc02cc0340084c9263253330083370e90000008992999806800804099299980718080010a4c01264a66666602200201201201226eb4004024c038004c02cdd50010a99980419b874800800454ccc030c02cdd50010a4c00e200e60126ea8004018c94cccccc0380044004018018018018c02c004c020dd5001080218031baa001533333300a001100100200200200215330024912a72656465656d65723a204569746865723c4279746541727261792c20496e74657276616c3c496e743e3e00165734ae7155ceaab9e5573eae855d12ba41", - "hash": "b390602ddd7b779e527c9cf7f2c9908f99ec8131c22222d337926ce4", + "compiledCode": "590156010000323232323232323232232253330054a22930a9980324811856616c696461746f722072657475726e65642066616c73650013656323253330053370e90000008992999805000802899299980598068010a4c00c64a66666601c00200c00c00c00c26eb8004c02c004c020dd50010a99980299b87480080044c94ccc0280040144c94ccc02cc0340084c9263253330083370e90000008992999806800804099299980718080010a4c01264a66666602200201201201226eb4004024c038004c02cdd50010a99980419b874800800454ccc030c02cdd50010a4c00e00e60126ea8004018c94cccccc0380044004018018018018c02c004c020dd500100218031baa001533333300a001100100200200200215330024912a72656465656d65723a204569746865723c4279746541727261792c20496e74657276616c3c496e743e3e00165734ae7155ceaab9e5573eae855d12ba41", + "hash": "d9891fd7080a2e6e3a68d330ef987b6950115bbe0700f1dfeab7af2f", "definitions": { "ByteArray": { "dataType": "bytes" diff --git a/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__list_2_tuples_as_list.snap b/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__list_2_tuples_as_list.snap index 72e6ce43..7fb19763 100644 --- a/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__list_2_tuples_as_list.snap +++ b/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__list_2_tuples_as_list.snap @@ -10,8 +10,8 @@ description: "Code:\n\ntype Dict {\n inner: List<(ByteArray, valu "$ref": "#/definitions/test_module~1Dict$test_module~1UUID_Int" } }, - "compiledCode": "59012c010000323232323232323232232253330054a22930a9980324811856616c696461746f722072657475726e65642066616c736500136563253330043370e900018031baa0011325333009001004132533300a300c002132498c8cc004004008894ccc03000452613233003003300f0023232533300e00100913232533301000100b132533301130130021498030c94cccccc0500040300300304dd68008061808800980880119299999980900080500500500509bae001300f001533333301000100800813758002010010601a00200a64a66666601a00200a00a26eb0004014014c028004c01cdd50008801a99999980500088008010010010010a998012491972656465656d65723a20446963743c555549442c20496e743e00165734ae7155ceaab9e5573eae855d12ba41", - "hash": "0c91eacc4977ffcd98175eaa57e9efa264d8bac1d02b2d61f24da62a", + "compiledCode": "59012c010000323232323232323232232253330054a22930a9980324811856616c696461746f722072657475726e65642066616c736500136563253330043370e900018031baa0011325333009001004132533300a300c002132498c8cc004004008894ccc03000452613233003003300f0023232533300e00100913232533301000100b132533301130130021498030c94cccccc0500040300300304dd68008061808800980880119299999980900080500500500509bae001300f001533333301000100800813758002010010601a00200a64a66666601a00200a00a26eb0004014014c028004c01cdd5000801a99999980500088008010010010010a9980124811972656465656d65723a20446963743c555549442c20496e743e00165734ae7155ceaab9e5573eae855d12ba41", + "hash": "41a2fefe69a528618655adf8d9c426133a166851b2acf234ff889400", "definitions": { "ByteArray": { "dataType": "bytes" diff --git a/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__list_pairs_as_map.snap b/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__list_pairs_as_map.snap index 82eb4e73..1e470b96 100644 --- a/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__list_pairs_as_map.snap +++ b/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__list_pairs_as_map.snap @@ -10,8 +10,8 @@ description: "Code:\n\ntype Dict {\n inner: List {\n Cons(a, LinkedList)\n Nil "$ref": "#/definitions/test_module~1LinkedList$Int" } }, - "compiledCode": "5902de01000032323232323232323232232323232322322533300c4a22930a99806a491856616c696461746f722072657475726e65642066616c73650013656330035333333011001100100800800800800833232232533300c3008001132533301100100c13253330123014002132498cc014004034034c94cccccc0540044004034034034034c048004c03cdd50010a99980618038008992999808800806099192999809800807099299980a180b00109924ca66602800201e26464a66602c002022264a66602e603200426493191980080080111299980c8008a4c264660060066038004646601ea66666603a002200202a02a02a02a02a603400202464a66666603400202402426eb0004048048c05c004c05c008c94cccccc0600040400400400404dd7000980a80080799299999980b80080780789bac00100f00f3014001301400232533333301500100d00d00d1375a00201a6024002601e6ea8008402cc034dd5000980080091119299980618040008992999808800806099192999809800807099299980a180b00109924c66601001000201e01e64a66666602e002200201e01e01e01e6028002602800464a66666602a002264a66602660240022a66601e60146022002294454ccc03cc02cc044004528080708071baa00100d00d00d00d3012001300f37540062a666018600e0022a666020601e6ea800c52600b100b300d3754004a66666601e00a200a00e00e00e00e600200244464a666014600c002264a66601e00201226464a666022002016264a66602460280042649319980400400080600619299999980a80088008060060060061809000980900119299999980980080500500509bad00100a3010001300d37540062a666014600a0022a66601c601a6ea800c5260081008300b37540046e1d2002370e90000a99801a491972656465656d65723a204c696e6b65644c6973743c496e743e001615330024910a646174756d3a20466f6f00165734ae7155ceaab9e5573eae855d12ba41", - "hash": "ac673a7d9b39fe521622e7ec1758202ea5a6660b5ad755154a626548", + "compiledCode": "5902dc01000032323232323232323232232323232322322533300c4a22930a99806a491856616c696461746f722072657475726e65642066616c73650013656330035333333011001100100800800800800833232232533300c3008001132533301100100c13253330123014002132498cc014004034034c94cccccc0540044004034034034034c048004c03cdd50010a99980618038008992999808800806099192999809800807099299980a180b00109924ca66602800201e26464a66602c002022264a66602e603200426493191980080080111299980c8008a4c264660060066038004646601ea66666603a002200202a02a02a02a02a603400202464a66666603400202402426eb0004048048c05c004c05c008c94cccccc0600040400400400404dd7000980a80080799299999980b80080780789bac00100f00f3014001301400232533333301500100d00d00d1375a00201a6024002601e6ea800802cc034dd5000980080091119299980618040008992999808800806099192999809800807099299980a180b00109924c66601001000201e01e64a66666602e002200201e01e01e01e6028002602800464a66666602a002264a66602660240022a66601e60146022002294454ccc03cc02cc0440045280070071baa00100d00d00d00d3012001300f37540062a666018600e0022a666020601e6ea800c52600b00b300d3754004a66666601e00a200a00e00e00e00e600200244464a666014600c002264a66601e00201226464a666022002016264a66602460280042649319980400400080600619299999980a80088008060060060061809000980900119299999980980080500500509bad00100a3010001300d37540062a666014600a0022a66601c601a6ea800c526008008300b37540046e1d2002370e90000a99801a4811972656465656d65723a204c696e6b65644c6973743c496e743e001615330024910a646174756d3a20466f6f00165734ae7155ceaab9e5573eae855d12ba41", + "hash": "84b32ffc00b858865c8047f8145074fd841a828bfa1cd48c25e204ec", "definitions": { "Bool": { "title": "Bool", diff --git a/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__recursive_types.snap b/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__recursive_types.snap index 2c393cdb..c6d9c9fd 100644 --- a/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__recursive_types.snap +++ b/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__recursive_types.snap @@ -10,8 +10,8 @@ description: "Code:\n\npub type Expr {\n Val(Int)\n Sum(Expr, Expr)\n Mul(Exp "$ref": "#/definitions/test_module~1Expr" } }, - "compiledCode": "590182010000323232323232323232232253330054a22930a9980324811856616c696461746f722072657475726e65642066616c73650013656333230010012223253330073370e90000008992999806000803899299980698078010a4c01064a66666602000201001001026eb4004020c034004c028dd50018a99980399b87480080044c94ccc03000401c4c8c94ccc0380040244c94ccc03cc0440084c8c92633300900900200b33300800800300a00a325333333012001100100a00a00a00a300f001300f0023253333330100011001008008008008300d001300a37540062a66600e66e1d2004001132533300c00100713232533300e001009132533300f301100213232498ccc02402400802cccc02002000c028028c94cccccc0480044004028028028028c03c004c03c008c94cccccc0400044004020020020020c034004c028dd5001880318041baa002533333300a001100100200200200200215330024910e72656465656d65723a204578707200165734ae7155ceaab9e5573eae855d12ba41", - "hash": "b26fdfa2fce40e375e4b4239bcd5271613d14e9b09d0139990d7cdca", + "compiledCode": "590182010000323232323232323232232253330054a22930a9980324811856616c696461746f722072657475726e65642066616c73650013656333230010012223253330073370e90000008992999806000803899299980698078010a4c01064a66666602000201001001026eb4004020c034004c028dd50018a99980399b87480080044c94ccc03000401c4c8c94ccc0380040244c94ccc03cc0440084c8c92633300900900200b33300800800300a00a325333333012001100100a00a00a00a300f001300f0023253333330100011001008008008008300d001300a37540062a66600e66e1d2004001132533300c00100713232533300e001009132533300f301100213232498ccc02402400802cccc02002000c028028c94cccccc0480044004028028028028c03c004c03c008c94cccccc0400044004020020020020c034004c028dd500180318041baa002533333300a0011001002002002002002153300249010e72656465656d65723a204578707200165734ae7155ceaab9e5573eae855d12ba41", + "hash": "5e5d31d96828f3f0b12ac296adc263de4ac0964cae3cac0164f525e1", "definitions": { "Int": { "dataType": "integer" diff --git a/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__simplified_hydra.snap b/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__simplified_hydra.snap index c9b23600..915850e4 100644 --- a/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__simplified_hydra.snap +++ b/crates/aiken-project/src/blueprint/snapshots/aiken_project__blueprint__validator__tests__simplified_hydra.snap @@ -16,8 +16,8 @@ description: "Code:\n\n/// On-chain state\ntype State {\n /// The contestatio "$ref": "#/definitions/test_module~1Input" } }, - "compiledCode": "5901c70100003232323232323232323223232232253330094a22930a998052491856616c696461746f722072657475726e65642066616c736500136563232533300930050011533300d300c37540042930038a99980499b874800800454ccc034c030dd50010a4c00e2a66601266e1d20040011533300d300c3754004293003880398051baa001533333300e0011001005005005005325333006300230083754002264a66601600200c26464a66601a00201026464a66601e002014264a6660206024004264649319198008008029129998098008a4c26466006006602c00464a66666602e00201e01e01e01e26eb8004c0500054ccc030c020c038dd500289929998088008060992999809180a0010a4c01a64a66666602a00201a01a01a26eb4004034c048004c03cdd5002880580599299999980980080580580580589bae0013010001301000232533333301100100900913758002012012601c002601c00464a66666601e002200200e00e00e00e601800260126ea800440154cccccc0300084008010010010010dc3a40002a660069210f72656465656d65723a20496e707574001615330024910c646174756d3a20537461746500165734ae7155ceaab9e5573eae855d12ba41", - "hash": "c9d0e34c52f1db0e5aca820fc5b1fbebe6086f8bd02b95f690f44e3c", + "compiledCode": "5901c60100003232323232323232323223232232253330094a22930a998052491856616c696461746f722072657475726e65642066616c736500136563232533300930050011533300d300c37540042930038a99980499b874800800454ccc034c030dd50010a4c00e2a66601266e1d20040011533300d300c375400429300380398051baa001533333300e0011001005005005005325333006300230083754002264a66601600200c26464a66601a00201026464a66601e002014264a6660206024004264649319198008008029129998098008a4c26466006006602c00464a66666602e00201e01e01e01e26eb8004c0500054ccc030c020c038dd500289929998088008060992999809180a0010a4c01a64a66666602a00201a01a01a26eb4004034c048004c03cdd500280580599299999980980080580580580589bae0013010001301000232533333301100100900913758002012012601c002601c00464a66666601e002200200e00e00e00e601800260126ea80040154cccccc0300084008010010010010dc3a40002a6600692010f72656465656d65723a20496e707574001615330024910c646174756d3a20537461746500165734ae7155ceaab9e5573eae855d12ba41", + "hash": "02a625742f53a006e38b3c9abbcd3c77002815705ad1f6a5a6b02813", "definitions": { "ByteArray": { "dataType": "bytes" diff --git a/crates/aiken-project/src/tests/gen_uplc.rs b/crates/aiken-project/src/tests/gen_uplc.rs index 2f20e9df..20c88855 100644 --- a/crates/aiken-project/src/tests/gen_uplc.rs +++ b/crates/aiken-project/src/tests/gen_uplc.rs @@ -3752,35 +3752,37 @@ fn when_tuple_deconstruction() { .apply(Term::var("subject")) .delayed_if_then_else( Term::var("red_constr_fields") - .delayed_choose_list( - Term::Error.delayed_trace(Term::var("param_msg")), + .choose_list( + Term::var("param_msg"), Term::tail_list() .apply(Term::var("red_constr_fields")) - .delayed_choose_list( - Term::unit(), - Term::Error.delayed_trace(Term::var("param_msg")), + .choose_list( + Term::unit().delay(), + Term::var("param_msg"), ) + .force() .lambda("field_1") .apply( Term::var("__val") - .delayed_choose_data( - Term::Error - .delayed_trace(Term::var("param_msg")), - Term::Error - .delayed_trace(Term::var("param_msg")), - Term::Error - .delayed_trace(Term::var("param_msg")), - Term::un_i_data().apply(Term::var("__val")), - Term::Error - .delayed_trace(Term::var("param_msg")), + .choose_data( + Term::var("param_msg"), + Term::var("param_msg"), + Term::var("param_msg"), + Term::un_i_data() + .apply(Term::var("__val")) + .delay(), + Term::var("param_msg"), ) + .force() .lambda("__val") .apply( Term::head_list() .apply(Term::var("red_constr_fields")), ), - ), + ) + .delay(), ) + .force() .lambda("red_constr_fields") .apply( Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("red")), @@ -3788,15 +3790,18 @@ fn when_tuple_deconstruction() { Term::equals_integer() .apply(Term::integer(1.into())) .apply(Term::var("subject")) - .delayed_if_then_else( + .if_then_else( Term::var(CONSTR_FIELDS_EXPOSER) .apply(Term::var("red")) - .delayed_choose_list( - Term::unit(), - Term::Error.delayed_trace(Term::var("param_msg")), - ), - Term::Error.delayed_trace(Term::var("param_msg")), - ), + .choose_list( + Term::unit().delay(), + Term::var("param_msg"), + ) + .force() + .delay(), + Term::var("param_msg"), + ) + .force(), ) .lambda("subject") .apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("red"))) @@ -3809,13 +3814,14 @@ fn when_tuple_deconstruction() { .lambda("red") .apply( Term::var("__val") - .delayed_choose_data( - Term::var("__val"), - Term::Error.delayed_trace(Term::var("red:RedSpend")), - Term::Error.delayed_trace(Term::var("red:RedSpend")), - Term::Error.delayed_trace(Term::var("red:RedSpend")), - Term::Error.delayed_trace(Term::var("red:RedSpend")), + .choose_data( + Term::var("__val").delay(), + Term::var("red:RedSpend"), + Term::var("red:RedSpend"), + Term::var("red:RedSpend"), + Term::var("red:RedSpend"), ) + .force() .lambda("__val") .apply(Term::var("red")), ) @@ -3830,39 +3836,42 @@ fn when_tuple_deconstruction() { .apply(Term::var("subject")) .delayed_if_then_else( Term::var("dat_constr_fields") - .delayed_choose_list( - Term::Error.delayed_trace(Term::var("param_msg")), + .choose_list( + Term::var("param_msg"), Term::tail_list() .apply(Term::var("dat_constr_fields")) - .delayed_choose_list( - Term::unit().lambda("_").apply( - Term::var("expect_Thing") - .apply(Term::var("field_1")) - .apply(Term::var("param_msg")), - ), - Term::Error.delayed_trace(Term::var("param_msg")), + .choose_list( + Term::unit() + .lambda("_") + .apply( + Term::var("expect_Thing") + .apply(Term::var("field_1")) + .apply(Term::var("param_msg")), + ) + .delay(), + Term::var("param_msg"), ) + .force() .lambda("field_1") .apply( Term::var("__val") - .delayed_choose_data( - Term::var("__val"), - Term::Error - .delayed_trace(Term::var("param_msg")), - Term::Error - .delayed_trace(Term::var("param_msg")), - Term::Error - .delayed_trace(Term::var("param_msg")), - Term::Error - .delayed_trace(Term::var("param_msg")), + .choose_data( + Term::var("__val").delay(), + Term::var("param_msg"), + Term::var("param_msg"), + Term::var("param_msg"), + Term::var("param_msg"), ) + .force() .lambda("__val") .apply( Term::head_list() .apply(Term::var("dat_constr_fields")), ), - ), + ) + .delay(), ) + .force() .lambda("dat_constr_fields") .apply( Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("dat")), @@ -3870,15 +3879,18 @@ fn when_tuple_deconstruction() { Term::equals_integer() .apply(Term::integer(1.into())) .apply(Term::var("subject")) - .delayed_if_then_else( + .if_then_else( Term::var(CONSTR_FIELDS_EXPOSER) .apply(Term::var("dat")) - .delayed_choose_list( - Term::unit(), - Term::Error.delayed_trace(Term::var("param_msg")), - ), - Term::Error.delayed_trace(Term::var("param_msg")), - ), + .choose_list( + Term::unit().delay(), + Term::var("param_msg"), + ) + .force() + .delay(), + Term::var("param_msg"), + ) + .force(), ) .lambda("subject") .apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("dat"))) @@ -3890,45 +3902,49 @@ fn when_tuple_deconstruction() { Term::equals_integer() .apply(Term::integer(0.into())) .apply(Term::var("subject")) - .delayed_if_then_else( + .if_then_else( Term::var("field_1_constr_fields") - .delayed_choose_list( - Term::Error.delayed_trace(Term::var("param_msg")), + .choose_list( + Term::var("param_msg"), Term::tail_list() .apply(Term::var("field_1_constr_fields")) - .delayed_choose_list( - Term::unit(), - Term::Error.delayed_trace(Term::var("param_msg")), + .choose_list( + Term::unit().delay(), + Term::var("param_msg"), ) + .force() .lambda("idx") .apply( Term::var("__val") - .delayed_choose_data( - Term::Error - .delayed_trace(Term::var("param_msg")), - Term::Error - .delayed_trace(Term::var("param_msg")), - Term::Error - .delayed_trace(Term::var("param_msg")), - Term::un_i_data().apply(Term::var("__val")), - Term::Error - .delayed_trace(Term::var("param_msg")), + .choose_data( + Term::var("param_msg"), + Term::var("param_msg"), + Term::var("param_msg"), + Term::un_i_data() + .apply(Term::var("__val")) + .delay(), + Term::var("param_msg"), ) + .force() .lambda("__val") .apply( Term::head_list().apply(Term::var( "field_1_constr_fields", )), ), - ), + ) + .delay(), ) + .force() .lambda("field_1_constr_fields") .apply( Term::var(CONSTR_FIELDS_EXPOSER) .apply(Term::var("field_1")), - ), - Term::Error.delayed_trace(Term::var("param_msg")), + ) + .delay(), + Term::var("param_msg"), ) + .force() .lambda("subject") .apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("field_1"))) .lambda("param_msg") @@ -3940,13 +3956,14 @@ fn when_tuple_deconstruction() { .lambda("dat") .apply( Term::var("__val") - .delayed_choose_data( - Term::var("__val"), - Term::Error.delayed_trace(Term::var("dat:Datum")), - Term::Error.delayed_trace(Term::var("dat:Datum")), - Term::Error.delayed_trace(Term::var("dat:Datum")), - Term::Error.delayed_trace(Term::var("dat:Datum")), + .choose_data( + Term::var("__val").delay(), + Term::var("dat:Datum"), + Term::var("dat:Datum"), + Term::var("dat:Datum"), + Term::var("dat:Datum"), ) + .force() .lambda("__val") .apply(Term::var("dat")), ) @@ -3960,9 +3977,17 @@ fn when_tuple_deconstruction() { .lambda("x"), ) .lambda("red:RedSpend") - .apply(Term::string("red: RedSpend")) + .apply( + Term::Error + .delayed_trace(Term::string("red: RedSpend")) + .delay(), + ) .lambda("dat:Datum") - .apply(Term::string("dat: Datum")) + .apply( + Term::Error + .delayed_trace(Term::string("dat: Datum")) + .delay(), + ) .lambda(CONSTR_INDEX_EXPOSER) .apply( Term::fst_pair() @@ -6232,78 +6257,87 @@ fn opaque_value_in_datum() { let expect_on_tail = Term::tail_list() .apply(Term::var("tail_1")) - .delayed_choose_list( - Term::unit().lambda("_").apply( - Term::var("expect_on_list").apply(Term::var("a")).apply( - Term::var("expect_on_list") - .apply(Term::var("pair_snd_outer")) - .apply( - Term::var("__val") - .delayed_choose_data( - Term::Error.delayed_trace(Term::var("param_msg")), - Term::Error.delayed_trace(Term::var("param_msg")), - Term::Error.delayed_trace(Term::var("param_msg")), - Term::un_i_data().apply(Term::var("__val")), - Term::Error.delayed_trace(Term::var("param_msg")), - ) - .lambda("__val") - .apply(Term::snd_pair().apply(Term::var("pair"))) - .lambda("pair_fst") - .apply( - Term::var("__val") - .delayed_choose_data( - Term::Error.delayed_trace(Term::var("param_msg")), - Term::Error.delayed_trace(Term::var("param_msg")), - Term::Error.delayed_trace(Term::var("param_msg")), - Term::Error.delayed_trace(Term::var("param_msg")), - Term::un_b_data().apply(Term::var("__val")), - ) - .lambda("__val") - .apply(Term::fst_pair().apply(Term::var("pair"))), - ) - .lambda("pair"), - ) - .lambda("pair_snd_outer") - .apply( - Term::var("__val") - .delayed_choose_data( - Term::Error.delayed_trace(Term::var("param_msg")), - Term::unmap_data().apply(Term::var("__val")), - Term::Error.delayed_trace(Term::var("param_msg")), - Term::Error.delayed_trace(Term::var("param_msg")), - Term::Error.delayed_trace(Term::var("param_msg")), - ) - .lambda("__val") - .apply(Term::snd_pair().apply(Term::var("pair_outer"))), - ) - .lambda("pair_fst_outer") - .apply( - Term::var("__val") - .delayed_choose_data( - Term::Error.delayed_trace(Term::var("param_msg")), - Term::Error.delayed_trace(Term::var("param_msg")), - Term::Error.delayed_trace(Term::var("param_msg")), - Term::Error.delayed_trace(Term::var("param_msg")), - Term::un_b_data().apply(Term::var("__val")), - ) - .lambda("__val") - .apply(Term::fst_pair().apply(Term::var("pair_outer"))), - ) - .lambda("pair_outer"), - ), - ), - Term::Error.delayed_trace(Term::var("param_msg")), + .choose_list( + Term::unit() + .lambda("_") + .apply( + Term::var("expect_on_list").apply(Term::var("a")).apply( + Term::var("expect_on_list") + .apply(Term::var("pair_snd_outer")) + .apply( + Term::var("__val") + .choose_data( + Term::var("param_msg"), + Term::var("param_msg"), + Term::var("param_msg"), + Term::un_i_data().apply(Term::var("__val")).delay(), + Term::var("param_msg"), + ) + .force() + .lambda("__val") + .apply(Term::snd_pair().apply(Term::var("pair"))) + .lambda("pair_fst") + .apply( + Term::var("__val") + .choose_data( + Term::var("param_msg"), + Term::var("param_msg"), + Term::var("param_msg"), + Term::var("param_msg"), + Term::un_b_data().apply(Term::var("__val")).delay(), + ) + .force() + .lambda("__val") + .apply(Term::fst_pair().apply(Term::var("pair"))), + ) + .lambda("pair"), + ) + .lambda("pair_snd_outer") + .apply( + Term::var("__val") + .choose_data( + Term::var("param_msg"), + Term::unmap_data().apply(Term::var("__val")).delay(), + Term::var("param_msg"), + Term::var("param_msg"), + Term::var("param_msg"), + ) + .force() + .lambda("__val") + .apply(Term::snd_pair().apply(Term::var("pair_outer"))), + ) + .lambda("pair_fst_outer") + .apply( + Term::var("__val") + .choose_data( + Term::var("param_msg"), + Term::var("param_msg"), + Term::var("param_msg"), + Term::var("param_msg"), + Term::un_b_data().apply(Term::var("__val")).delay(), + ) + .force() + .lambda("__val") + .apply(Term::fst_pair().apply(Term::var("pair_outer"))), + ) + .lambda("pair_outer"), + ), + ) + .delay(), + Term::var("param_msg"), ) + .force() .lambda("a") .apply( Term::var("__val") - .delayed_choose_data( - Term::Error.delayed_trace(Term::var("param_msg")), - Term::unmap_data().apply(Term::var("__val")), - Term::Error.delayed_trace(Term::var("param_msg")), - Term::Error.delayed_trace(Term::var("param_msg")), - Term::Error.delayed_trace(Term::var("param_msg")), + .choose_data( + Term::var("param_msg"), + Term::unmap_data().apply(Term::var("__val")).delay(), + Term::var("param_msg"), + Term::var("param_msg"), + Term::var("param_msg"), ) + .force() .lambda("__val") .apply(Term::head_list().apply(Term::var("tail_1"))), ); @@ -6311,11 +6345,11 @@ fn opaque_value_in_datum() { assert_uplc( src, Term::var("val") - .delayed_choose_list( - Term::Error.delayed_trace(Term::var("expect[Pair(_,amount)]=val.inner.inner")), + .choose_list( + Term::var("expect[Pair(_,amount)]=val.inner.inner"), Term::tail_list() .apply(Term::var("val")) - .delayed_choose_list( + .choose_list( Term::equals_data() .apply(Term::map_data().apply(Term::var("final_amount"))) .apply(Term::map_data().apply(Term::var("amount"))) @@ -6330,13 +6364,16 @@ fn opaque_value_in_datum() { .apply( Term::unmap_data() .apply(Term::snd_pair().apply(Term::var("tuple_item_0"))), - ), - Term::Error - .delayed_trace(Term::var("expect[Pair(_,amount)]=val.inner.inner")), + ) + .delay(), + Term::var("expect[Pair(_,amount)]=val.inner.inner"), ) + .force() .lambda("tuple_item_0") - .apply(Term::head_list().apply(Term::var("val"))), + .apply(Term::head_list().apply(Term::var("val"))) + .delay(), ) + .force() .lambda("val") .apply( Term::unmap_data().apply( @@ -6362,45 +6399,49 @@ fn opaque_value_in_datum() { Term::equals_integer() .apply(Term::integer(0.into())) .apply(Term::var("subject")) - .delayed_if_then_else( + .if_then_else( Term::var("dat_fields") - .delayed_choose_list( - Term::Error.delayed_trace(Term::var("param_msg")), + .choose_list( + Term::var("param_msg"), Term::var("tail_1") - .delayed_choose_list( - Term::Error.delayed_trace(Term::var("param_msg")), - expect_on_tail, + .choose_list( + Term::var("param_msg"), + expect_on_tail.delay(), ) + .force() .lambda("tail_1") .apply(Term::tail_list().apply(Term::var("dat_fields"))) .lambda("c") .apply( Term::var("__val") - .delayed_choose_data( - Term::Error - .delayed_trace(Term::var("param_msg")), - Term::Error - .delayed_trace(Term::var("param_msg")), - Term::Error - .delayed_trace(Term::var("param_msg")), - Term::un_i_data().apply(Term::var("__val")), - Term::Error - .delayed_trace(Term::var("param_msg")), + .choose_data( + Term::var("param_msg"), + Term::var("param_msg"), + Term::var("param_msg"), + Term::un_i_data() + .apply(Term::var("__val")) + .delay(), + Term::var("param_msg"), ) + .force() .lambda("__val") .apply( Term::head_list() .apply(Term::var("dat_fields")), ), - ), + ) + .delay(), ) + .force() .lambda("dat_fields") .apply( Term::var(CONSTR_FIELDS_EXPOSER) .apply(Term::var("param_0")), - ), - Term::Error.delayed_trace(Term::var("param_msg")), + ) + .delay(), + Term::var("param_msg"), ) + .force() .lambda("subject") .apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("param_0"))) .lambda("param_msg") @@ -6438,22 +6479,27 @@ fn opaque_value_in_datum() { .lambda("dat") .apply( Term::var("__val") - .delayed_choose_data( - Term::var("__val"), - Term::Error.delayed_trace(Term::var("dat:Dat")), - Term::Error.delayed_trace(Term::var("dat:Dat")), - Term::Error.delayed_trace(Term::var("dat:Dat")), - Term::Error.delayed_trace(Term::var("dat:Dat")), + .choose_data( + Term::var("__val").delay(), + Term::var("dat:Dat"), + Term::var("dat:Dat"), + Term::var("dat:Dat"), + Term::var("dat:Dat"), ) + .force() .lambda("__val") .apply(Term::var("dat")), ) .lambda("dat") .constr_fields_exposer() .lambda("expect[Pair(_,amount)]=val.inner.inner") - .apply(Term::string("expect [Pair(_, amount)] = val.inner.inner")) + .apply( + Term::Error + .delayed_trace(Term::string("expect [Pair(_, amount)] = val.inner.inner")) + .delay(), + ) .lambda("dat:Dat") - .apply(Term::string("dat: Dat")) + .apply(Term::Error.delayed_trace(Term::string("dat: Dat")).delay()) .constr_index_exposer(), false, ); @@ -6500,11 +6546,11 @@ fn opaque_value_in_test() { assert_uplc( src, Term::var("val") - .delayed_choose_list( - Term::Error.delayed_trace(Term::var("expect[Pair(_,amount)]=val.inner.inner")), + .choose_list( + Term::var("expect[Pair(_,amount)]=val.inner.inner"), Term::tail_list() .apply(Term::var("val")) - .delayed_choose_list( + .choose_list( Term::equals_data() .apply(Term::map_data().apply(Term::var("final_amount"))) .apply(Term::map_data().apply(Term::var("amount"))) @@ -6519,13 +6565,16 @@ fn opaque_value_in_test() { .apply( Term::unmap_data() .apply(Term::snd_pair().apply(Term::var("tuple_item_0"))), - ), - Term::Error - .delayed_trace(Term::var("expect[Pair(_,amount)]=val.inner.inner")), + ) + .delay(), + Term::var("expect[Pair(_,amount)]=val.inner.inner"), ) + .force() .lambda("tuple_item_0") - .apply(Term::head_list().apply(Term::var("val"))), + .apply(Term::head_list().apply(Term::var("val"))) + .delay(), ) + .force() .lambda("val") .apply(Term::unmap_data().apply(Term::head_list().apply( Term::tail_list().apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("dat"))), @@ -6556,7 +6605,11 @@ fn opaque_value_in_test() { .into(), )])) .lambda("expect[Pair(_,amount)]=val.inner.inner") - .apply(Term::string("expect [Pair(_, amount)] = val.inner.inner")) + .apply( + Term::Error + .delayed_trace(Term::string("expect [Pair(_, amount)] = val.inner.inner")) + .delay(), + ) .constr_fields_exposer(), false, );