@harmoniclabs/plu-ts-onchain
Version:
An embedded DSL for Cardano smart contracts creation coupled with a library for Cardano transactions, all in Typescript
46 lines (45 loc) • 2.35 kB
TypeScript
import { TermFn, PBool, PLam, PDelayed } from "../../../PTypes/index.js";
import { Term } from "../../../Term/index.js";
import { TermType, ToPType } from "../../../type_system/index.js";
import { UtilityTermOf } from "../../std/UtilityTerms/addUtilityForType.js";
import { PappArg } from "../../pappArg.js";
import { TermBool } from "../../std/UtilityTerms/TermBool.js";
export declare function pstrictIf<ReturnT extends TermType>(returnType: ReturnT): TermFn<[PBool, ToPType<ReturnT>, ToPType<ReturnT>], ToPType<ReturnT>>;
export declare function pif<ReturnT extends TermType>(returnType?: ReturnT | undefined): Term<PLam<PBool, PLam<ToPType<ReturnT>, PLam<ToPType<ReturnT>, ToPType<ReturnT>>>>> & {
$: (condition: PappArg<PBool>) => Term<PLam<ToPType<ReturnT>, PLam<ToPType<ReturnT>, ToPType<ReturnT>>>> & {
then: (caseTrue: PappArg<ToPType<ReturnT>>) => TermFn<[ToPType<ReturnT>], ToPType<ReturnT>> & {
else: (caseFalse: PappArg<ToPType<ReturnT>>) => UtilityTermOf<ToPType<ReturnT>>;
};
$: (caseTrue: PappArg<ToPType<ReturnT>>) => TermFn<[ToPType<ReturnT>], ToPType<ReturnT>> & {
else: (caseFalse: PappArg<ToPType<ReturnT>>) => UtilityTermOf<ToPType<ReturnT>>;
};
};
};
export declare const pnot: Term<PLam<PBool, PBool>> & {
$: (bool: PappArg<PBool>) => TermBool;
};
export declare const pstrictAnd: Term<PLam<PBool, PLam<PBool, PBool>>> & {
$: (bool: PappArg<PBool>) => Term<PLam<PBool, PBool>> & {
$: (bool: PappArg<PBool>) => TermBool;
};
};
export declare const pand: Term<PLam<PBool, PLam<PDelayed<PBool>, PBool>>> & {
$: (bool: PappArg<PBool>) => Term<PLam<PDelayed<PBool>, PBool>> & {
$: (bool: PappArg<PDelayed<PBool>>) => TermBool;
};
};
export declare const pstrictOr: Term<PLam<PBool, PLam<PBool, PBool>>> & {
$: (bool: PappArg<PBool>) => Term<PLam<PBool, PBool>> & {
$: (bool: PappArg<PBool>) => TermBool;
};
};
export declare const por: Term<PLam<PBool, PLam<PDelayed<PBool>, PBool>>> & {
$: (bool: PappArg<PBool>) => Term<PLam<PDelayed<PBool>, PBool>> & {
$: (bool: PappArg<PDelayed<PBool>>) => TermBool;
};
};
export declare const peqBool: Term<PLam<PBool, PLam<PBool, PBool>>> & {
$: (bool: PappArg<PBool>) => Term<PLam<PBool, PBool>> & {
$: (bool: PappArg<PBool>) => TermBool;
};
};