import { ExplValue } from "./DataValue"; import { Id, PrimOpTag, PrimValue, Value } from "./Value"; export declare type Unary = (x: T) => (k: Id) => V; export declare type Binary = (x: T, y: U) => (k: Id) => V; export declare class PrimOp extends Value { name: string; } export declare class UnaryOp extends PrimOp<"UnaryOp"> { op: Unary; } export declare class BinaryOp extends PrimOp<"BinaryOp"> { op: Binary; } export declare function unary_(op: Unary): ExplValue; export declare function binary_(op: Binary): ExplValue; export declare const unaryOps: Map>; export declare const binaryOps: Map>;