@harmoniclabs/plu-ts-onchain
Version:
An embedded DSL for Cardano smart contracts creation coupled with a library for Cardano transactions, all in Typescript
22 lines (21 loc) • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports._pmatchList = void 0;
var type_system_1 = require("../../../../type_system/index.js");
var minimal_1 = require("../../../builtins/list/minimal.js");
var pdelay_1 = require("../../../pdelay.js");
var pfn_1 = require("../../../pfn.js");
var minimal_2 = require("../../../pforce/minimal.js");
var phoist_1 = require("../../../phoist.js");
var minimal_3 = require("../../../punsafeConvertType/minimal.js");
var minimal_common_1 = require("../../data/conversion/minimal_common.js");
function _pmatchList(returnT, elemsT) {
return (0, phoist_1.phoist)((0, pfn_1.pfn)([
(0, type_system_1.delayed)(returnT),
(0, type_system_1.fn)([elemsT, (0, type_system_1.list)(elemsT)], returnT),
(0, type_system_1.list)(elemsT)
], returnT)(function (matchNil, matchCons, lst) {
return (0, minimal_2._pforce)((0, minimal_common_1._papp)((0, minimal_common_1._papp)((0, minimal_common_1._papp)((0, minimal_1._pstrictChooseList)(type_system_1.data, (0, type_system_1.delayed)(returnT)), (0, minimal_3._punsafeConvertType)(lst, (0, type_system_1.list)(type_system_1.data))), matchNil), (0, pdelay_1.pdelay)((0, minimal_common_1._papp)((0, minimal_common_1._papp)(matchCons, (0, minimal_common_1._papp)((0, minimal_1._phead)(elemsT), lst)), (0, minimal_common_1._papp)((0, minimal_1._ptail)(elemsT), lst)))));
}, "_pmatchList"));
}
exports._pmatchList = _pmatchList;