UNPKG

@harmoniclabs/plu-ts-onchain

Version:

An embedded DSL for Cardano smart contracts creation coupled with a library for Cardano transactions, all in Typescript

20 lines (19 loc) 1.67 kB
import { PType } from "../../../PType/index.js"; import { TermFn, PList, PLam, PBool } from "../../../PTypes/index.js"; import { Term } from "../../../Term/index.js"; import { TermType, ToPType } from "../../../type_system/index.js"; import { PappArg } from "../../pappArg.js"; export declare function pstrictChooseList<ListElemT extends TermType, ReturnT extends TermType>(listElemType: ListElemT, returnType: ReturnT): TermFn<[PList<ToPType<ListElemT>>, ToPType<ReturnT>, ToPType<ReturnT>], ToPType<ReturnT>>; export declare function pchooseList<ListElemT extends TermType, ReturnT extends TermType>(listElemType?: ListElemT | undefined, returnType?: ReturnT | undefined): Term<PLam<PList<ToPType<ListElemT>>, PLam<ToPType<ReturnT>, PLam<ToPType<ReturnT>, ToPType<ReturnT>>>>> & { $: (list: PappArg<PList<ToPType<ListElemT>>>) => Term<PLam<ToPType<ReturnT>, PLam<ToPType<ReturnT>, ToPType<ReturnT>>>> & { caseNil: (nilCase: PappArg<ToPType<ReturnT>>) => TermFn<[ToPType<ReturnT>], ToPType<ReturnT>> & { caseCons: (consCase: PappArg<ToPType<ReturnT>>) => Term<ToPType<ReturnT>>; }; $: (nilCase: PappArg<ToPType<ReturnT>>) => TermFn<[ToPType<ReturnT>], ToPType<ReturnT>> & { caseCons: (consCase: PappArg<ToPType<ReturnT>>) => Term<ToPType<ReturnT>>; }; }; }; export declare function phead<ListElemT extends TermType>(listElemType: ListElemT): TermFn<[PList<ToPType<ListElemT>>], ToPType<ListElemT>>; export declare function ptail<ListElemT extends TermType>(listElemT: ListElemT): TermFn<[PList<ToPType<ListElemT>>], PList<ToPType<ListElemT>>>; export declare const pisEmpty: TermFn<[PList<PType>], PBool>;