@nudojs/core 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -5
- package/dist/check-report-AtnAfY9U.d.ts +661 -0
- package/dist/chunk-MA2QEIYC.js +15030 -0
- package/dist/chunk-US532PZA.js +0 -0
- package/dist/chunk-ZUQXJRJL.js +4923 -0
- package/dist/exec.d.ts +2 -1
- package/dist/exec.js +170 -15
- package/dist/hof-types-tAeoYvzY.d.ts +368 -0
- package/dist/index-B7Lb8FU6.d.ts +726 -0
- package/dist/index.d.ts +685 -1103
- package/dist/index.js +1751 -5753
- package/dist/internal.d.ts +541 -0
- package/dist/internal.js +583 -0
- package/package.json +13 -8
- package/dist/chunk-RZOQL6PT.js +0 -7369
- package/dist/index-OfNo5qlN.d.ts +0 -761
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
import { Node } from '@babel/types';
|
|
2
|
+
|
|
3
|
+
/** 项(Term):抽象值的身份。字面量是项的特例。 */
|
|
4
|
+
type LiteralValue = string | number | boolean | null | undefined;
|
|
5
|
+
type Term = {
|
|
6
|
+
op: "lit";
|
|
7
|
+
value: LiteralValue;
|
|
8
|
+
} | {
|
|
9
|
+
op: "var";
|
|
10
|
+
id: string;
|
|
11
|
+
} | {
|
|
12
|
+
op: "app";
|
|
13
|
+
fn: string;
|
|
14
|
+
args: Term[];
|
|
15
|
+
};
|
|
16
|
+
declare const lit: (value: LiteralValue) => Term;
|
|
17
|
+
declare const v: (id: string) => Term;
|
|
18
|
+
declare const app: (fn: string, args: Term[]) => Term;
|
|
19
|
+
declare function termEquals(a: Term, b: Term): boolean;
|
|
20
|
+
declare function termToString(t: Term): string;
|
|
21
|
+
/** 常量折叠 + 简单代数化简 */
|
|
22
|
+
declare function simplifyTerm(t: Term): Term;
|
|
23
|
+
|
|
24
|
+
/** 约束(Pred):附着在项上的事实,可传播。 */
|
|
25
|
+
|
|
26
|
+
type PrimName = "number" | "string" | "boolean" | "bigint" | "symbol";
|
|
27
|
+
/** JS `typeof` 完整结果域(8 标签)。Pred 的 typeof 节点用此域。 */
|
|
28
|
+
type TypeofName = "undefined" | "object" | "boolean" | "number" | "bigint" | "string" | "symbol" | "function";
|
|
29
|
+
/** typeof 标签全集(否定展开用;顺序稳定) */
|
|
30
|
+
declare const TYPEOF_NAMES: readonly TypeofName[];
|
|
31
|
+
/** abs prim 标签 → typeof 标签(恒等嵌入)。abs prim 仍是 PrimName 子集。 */
|
|
32
|
+
declare function primToTypeof(p: PrimName): TypeofName;
|
|
33
|
+
type Pred = {
|
|
34
|
+
op: "true";
|
|
35
|
+
} | {
|
|
36
|
+
op: "false";
|
|
37
|
+
} | {
|
|
38
|
+
op: "eq";
|
|
39
|
+
a: Term;
|
|
40
|
+
b: Term;
|
|
41
|
+
} | {
|
|
42
|
+
op: "ne";
|
|
43
|
+
a: Term;
|
|
44
|
+
b: Term;
|
|
45
|
+
} | {
|
|
46
|
+
op: "lt";
|
|
47
|
+
a: Term;
|
|
48
|
+
b: Term;
|
|
49
|
+
} | {
|
|
50
|
+
op: "le";
|
|
51
|
+
a: Term;
|
|
52
|
+
b: Term;
|
|
53
|
+
} | {
|
|
54
|
+
op: "gt";
|
|
55
|
+
a: Term;
|
|
56
|
+
b: Term;
|
|
57
|
+
} | {
|
|
58
|
+
op: "ge";
|
|
59
|
+
a: Term;
|
|
60
|
+
b: Term;
|
|
61
|
+
} | {
|
|
62
|
+
op: "and";
|
|
63
|
+
args: Pred[];
|
|
64
|
+
} | {
|
|
65
|
+
op: "or";
|
|
66
|
+
args: Pred[];
|
|
67
|
+
} | {
|
|
68
|
+
op: "not";
|
|
69
|
+
arg: Pred;
|
|
70
|
+
} | {
|
|
71
|
+
op: "typeof";
|
|
72
|
+
t: Term;
|
|
73
|
+
type: TypeofName;
|
|
74
|
+
};
|
|
75
|
+
declare const pTrue: Pred;
|
|
76
|
+
declare const pFalse: Pred;
|
|
77
|
+
declare const eq: (a: Term, b: Term) => Pred;
|
|
78
|
+
declare const ne: (a: Term, b: Term) => Pred;
|
|
79
|
+
declare const lt: (a: Term, b: Term) => Pred;
|
|
80
|
+
declare const le: (a: Term, b: Term) => Pred;
|
|
81
|
+
declare const gt: (a: Term, b: Term) => Pred;
|
|
82
|
+
declare const ge: (a: Term, b: Term) => Pred;
|
|
83
|
+
declare const ptypeof: (t: Term, type: TypeofName) => Pred;
|
|
84
|
+
declare function and(...preds: Pred[]): Pred;
|
|
85
|
+
declare function or(...preds: Pred[]): Pred;
|
|
86
|
+
declare function not(p: Pred): Pred;
|
|
87
|
+
/**
|
|
88
|
+
* 逻辑否定(De Morgan):¬(A∧B)=¬A∨¬B;¬(A∨B)=¬A∧¬B;双重否定消去。
|
|
89
|
+
* typeof 否定展开为其余 TypeofName 标签的析取——8 标签域是 JS typeof 的
|
|
90
|
+
* 完整结果域,展开健全且相对完备。
|
|
91
|
+
*/
|
|
92
|
+
declare function negatePred(p: Pred): Pred;
|
|
93
|
+
declare function predEquals(a: Pred, b: Pred): boolean;
|
|
94
|
+
declare function predToString(p: Pred): string;
|
|
95
|
+
/** 把 pred 里的 Term 用 subst 替换(用于 bound 变量重命名等) */
|
|
96
|
+
declare function substPred(p: Pred, subst: (t: Term) => Term): Pred;
|
|
97
|
+
/** 收集 pred 中出现的自由变量 */
|
|
98
|
+
declare function predVars(p: Pred): Set<string>;
|
|
99
|
+
/** 约束环境 Φ:Pred 的合取 */
|
|
100
|
+
type Phi = Pred;
|
|
101
|
+
declare const emptyPhi: Phi;
|
|
102
|
+
declare const phiAnd: typeof and;
|
|
103
|
+
/**
|
|
104
|
+
* 外部蕴含 oracle(可选 SMT 等)。内建判定证不出时调用。
|
|
105
|
+
* 返回 true=可证;false/undefined=仍不可证(保持 fail-closed)。
|
|
106
|
+
* 默认无 oracle——纯内建区间/线性判定,不引入 solver 依赖。
|
|
107
|
+
*/
|
|
108
|
+
type ImplicationOracle = (phi: Phi, pred: Pred) => boolean | undefined;
|
|
109
|
+
declare function setImplicationOracle(fn: ImplicationOracle | undefined): void;
|
|
110
|
+
declare function getImplicationOracle(): ImplicationOracle | undefined;
|
|
111
|
+
/** 简单蕴含:在区间/线性/字面量/typeof 可判定范围内判断 Φ ⊢ pred */
|
|
112
|
+
declare function implies(phi: Phi, pred: Pred): boolean;
|
|
113
|
+
/** 便捷:数字下界 */
|
|
114
|
+
declare function gtNum(term: Term, n: number): Pred;
|
|
115
|
+
declare function geNum(term: Term, n: number): Pred;
|
|
116
|
+
declare function ltNum(term: Term, n: number): Pred;
|
|
117
|
+
declare function leNum(term: Term, n: number): Pred;
|
|
118
|
+
|
|
119
|
+
/** 抽象值 Abs = 形状 × 项 × 约束 × 置信度 */
|
|
120
|
+
|
|
121
|
+
type Confidence = "exact" | "path" | "widened" | "mock" | "partial" | "opaque";
|
|
122
|
+
type Shape = {
|
|
123
|
+
k: "never";
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* any:JS 里可以是任意值(无约束参数)。
|
|
127
|
+
* 运算按真实 JS 语义取并集,不是「分析失败」。
|
|
128
|
+
*/
|
|
129
|
+
| {
|
|
130
|
+
k: "any";
|
|
131
|
+
}
|
|
132
|
+
/** unknown:分析拿不到信息(求值失败/泄漏),不是「任意值」 */
|
|
133
|
+
| {
|
|
134
|
+
k: "unknown";
|
|
135
|
+
} | {
|
|
136
|
+
k: "prim";
|
|
137
|
+
type: PrimName;
|
|
138
|
+
} | {
|
|
139
|
+
k: "obj";
|
|
140
|
+
slots: Record<string, {
|
|
141
|
+
value: Abs;
|
|
142
|
+
optional?: boolean;
|
|
143
|
+
readonly?: boolean;
|
|
144
|
+
}>;
|
|
145
|
+
index?: {
|
|
146
|
+
key: Abs;
|
|
147
|
+
value: Abs;
|
|
148
|
+
};
|
|
149
|
+
open?: boolean;
|
|
150
|
+
} | {
|
|
151
|
+
k: "arr";
|
|
152
|
+
element: Abs;
|
|
153
|
+
} | {
|
|
154
|
+
k: "tuple";
|
|
155
|
+
elements: Abs[];
|
|
156
|
+
rest?: Abs;
|
|
157
|
+
/** 已删除下标(delete a[i] / 字面量空洞):读值为 undefined,`in` 判定 false */
|
|
158
|
+
holes?: number[];
|
|
159
|
+
} | {
|
|
160
|
+
k: "fn";
|
|
161
|
+
params: string[];
|
|
162
|
+
name?: string;
|
|
163
|
+
paramTypes?: Abs[];
|
|
164
|
+
returnType?: Abs;
|
|
165
|
+
} | {
|
|
166
|
+
k: "brand";
|
|
167
|
+
name: string;
|
|
168
|
+
shape: Abs;
|
|
169
|
+
} | {
|
|
170
|
+
k: "eff";
|
|
171
|
+
eff: "promise" | "generator";
|
|
172
|
+
inner: Abs;
|
|
173
|
+
} | {
|
|
174
|
+
k: "sum";
|
|
175
|
+
members: Abs[];
|
|
176
|
+
};
|
|
177
|
+
type Abs = {
|
|
178
|
+
shape: Shape;
|
|
179
|
+
term?: Term;
|
|
180
|
+
pred?: Pred;
|
|
181
|
+
conf: Confidence;
|
|
182
|
+
/**
|
|
183
|
+
* C2.4:分支 join 可解释标注(如 `join(number | string)`)。
|
|
184
|
+
* 仅展示用:不进 leq / 指纹 / check 等价;formatAbs 读取。
|
|
185
|
+
*/
|
|
186
|
+
pathNote?: string;
|
|
187
|
+
};
|
|
188
|
+
declare const never: Abs;
|
|
189
|
+
/** 分析无信息 */
|
|
190
|
+
declare const unknown: Abs;
|
|
191
|
+
/**
|
|
192
|
+
* 无约束 JS 值(未标注入口参数 / 显式 any())。
|
|
193
|
+
* ≠ unknown:unknown 表示引擎推导失败,any 表示开发者未写契约。
|
|
194
|
+
*/
|
|
195
|
+
declare const anyAbs: Abs;
|
|
196
|
+
/** 带 term 的 any(generalize type-var) */
|
|
197
|
+
declare function anyVar(id: string, conf?: Confidence): Abs;
|
|
198
|
+
declare function num(): Abs;
|
|
199
|
+
declare function str(): Abs;
|
|
200
|
+
declare function bool(): Abs;
|
|
201
|
+
declare function numLit(value: number): Abs;
|
|
202
|
+
declare function strLit(value: string): Abs;
|
|
203
|
+
declare function boolLit(value: boolean): Abs;
|
|
204
|
+
declare function bigintLit(value: bigint): Abs;
|
|
205
|
+
/** 带项的符号数,例如参数 x */
|
|
206
|
+
declare function numVar(id: string, pred?: Pred, conf?: Confidence): Abs;
|
|
207
|
+
declare function obj(slots: Record<string, {
|
|
208
|
+
value: Abs;
|
|
209
|
+
optional?: boolean;
|
|
210
|
+
}>): Abs;
|
|
211
|
+
declare function confJoin(a: Confidence, b: Confidence): Confidence;
|
|
212
|
+
declare function absToString(a: Abs): string;
|
|
213
|
+
declare function shapeToString(s: Shape): string;
|
|
214
|
+
/** 从 term 反推 prim shape */
|
|
215
|
+
declare function shapeOfTerm(t: Term): Shape;
|
|
216
|
+
/** 构造带项的结果 Abs;pred 相对 term */
|
|
217
|
+
declare function abs(shape: Shape, term: Term | undefined, pred: Pred | undefined, conf: Confidence): Abs;
|
|
218
|
+
declare function isNumPrim(a: Abs): boolean;
|
|
219
|
+
declare function isStrPrim(a: Abs): boolean;
|
|
220
|
+
declare function isBigPrim(a: Abs): boolean;
|
|
221
|
+
/** 置信度:字面量全确定 */
|
|
222
|
+
declare function isExactLit(a: Abs): boolean;
|
|
223
|
+
declare function litValue(a: Abs): LiteralValue | undefined;
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* may-throw 效果收集(design-cli-semantics §3.3)。
|
|
227
|
+
* any/nullish 成员访问等危险操作记录 throws 域,不立刻 hard-fail 求值。
|
|
228
|
+
* Collector/tryFrames 经 AsyncLocalStorage 会话隔离,避免 LSP 并发串档。
|
|
229
|
+
*/
|
|
230
|
+
|
|
231
|
+
type MayThrowEffect = {
|
|
232
|
+
/** throws 类型名,如 TypeError */
|
|
233
|
+
kind: string;
|
|
234
|
+
/** 人类可读成因 */
|
|
235
|
+
cause: string;
|
|
236
|
+
/** 接收者展示:any / null / undefined / number… */
|
|
237
|
+
recv?: string;
|
|
238
|
+
/** 成员名 */
|
|
239
|
+
name?: string;
|
|
240
|
+
line?: number;
|
|
241
|
+
column?: number;
|
|
242
|
+
};
|
|
243
|
+
/** 隔离一次分析的 may-throw 收集(check / analyzer 入口包一层) */
|
|
244
|
+
declare function runWithMayThrowSession<T>(body: () => T): T;
|
|
245
|
+
declare function setMayThrowCollector(c: ((e: MayThrowEffect) => void) | null): void;
|
|
246
|
+
declare function getMayThrowCollector(): ((e: MayThrowEffect) => void) | null;
|
|
247
|
+
declare function pushMayThrowFrame(): void;
|
|
248
|
+
/**
|
|
249
|
+
* 弹出 try 帧。discard=true(catch 消化)时返回空;否则返回帧内效果供上浮。
|
|
250
|
+
*/
|
|
251
|
+
declare function popMayThrowFrame(discard: boolean): MayThrowEffect[];
|
|
252
|
+
/**
|
|
253
|
+
* 孤儿 soft 效果上浮:若仍有外层 try 帧则并入外层(nested try + outer catch);
|
|
254
|
+
* 否则交给 collector。不得在栈非空时直接 flush,否则 outer catch 被旁路。
|
|
255
|
+
*/
|
|
256
|
+
declare function orphanMayThrowEffects(effects: MayThrowEffect[]): void;
|
|
257
|
+
/** B-path:try 开始时压 soft 帧 */
|
|
258
|
+
declare function $tryMarkSoft(): void;
|
|
259
|
+
/** B-path catch 消化 try 内 soft may-throw */
|
|
260
|
+
declare function $tryDigestSoft(): void;
|
|
261
|
+
/** B-path 无 handler / 出口 / rethrow:上浮未消化 soft may-throw(外层 try 可再消化) */
|
|
262
|
+
declare function $tryReleaseSoft(): MayThrowEffect[];
|
|
263
|
+
declare function flushMayThrowEffects(effects: MayThrowEffect[]): void;
|
|
264
|
+
declare function recordMayThrow(e: MayThrowEffect): void;
|
|
265
|
+
/** throws 类型名 → Abs(brand Error 形态,formatShape 打出名字) */
|
|
266
|
+
declare function errorTypeAbs(name: string): Abs;
|
|
267
|
+
/** 效果集 → throws Abs(never = 无 may-throw) */
|
|
268
|
+
declare function mayThrowEffectsToAbs(effects: MayThrowEffect[]): Abs;
|
|
269
|
+
/**
|
|
270
|
+
* throws Abs → 展示名(TypeError / TypeError | RangeError)。
|
|
271
|
+
* 非 brand/sum 时按 Abs 形状给出可运行时名,不再一律 "Error"。
|
|
272
|
+
*/
|
|
273
|
+
declare function formatThrowsAbs(t: Abs | undefined): string | undefined;
|
|
274
|
+
/** JS Error 家族:`@nudo:throws Error` 覆盖全部子类(与 instanceof 语义一致) */
|
|
275
|
+
declare const ERROR_FAMILY: Set<string>;
|
|
276
|
+
/** throws Abs → kind 名列表(sum 拆臂;绝不把 `"A | B"` 当单个 kind) */
|
|
277
|
+
declare function throwAbsToKinds(t: Abs | undefined): string[];
|
|
278
|
+
/** declared/ignore 条目是否盖住 kind(`Error` 盖 Error 家族;`*` 由调用方先判) */
|
|
279
|
+
declare function throwsKindCovered(kind: string, names: readonly string[]): boolean;
|
|
280
|
+
/** effects 是否被 ignore 列表吞掉(kind 或 Error 族) */
|
|
281
|
+
declare function isThrowsIgnored(kind: string, ignore: readonly string[] | undefined): boolean;
|
|
282
|
+
/**
|
|
283
|
+
* L2 throws 过滤(口径固定):
|
|
284
|
+
* 1. **declare 优先**(@nudo:throws / case !! throws / sidecar fn.throws)——有意 fail-fast;
|
|
285
|
+
* 2. ignoreThrows 其次——迁移期全类放行,**不是**声明的替代品。
|
|
286
|
+
*/
|
|
287
|
+
declare function filterGateThrows(effects: MayThrowEffect[], declared: readonly string[] | "*" | undefined, ignore: readonly string[] | undefined): MayThrowEffect[];
|
|
288
|
+
/** effects 过滤后的剩余(L2 --ignore-throws) */
|
|
289
|
+
declare function filterIgnoredThrows(effects: MayThrowEffect[], ignore: readonly string[] | undefined): MayThrowEffect[];
|
|
290
|
+
/**
|
|
291
|
+
* 申报式抛错过滤(@nudo:throws / case !! throws / sidecar fn.throws)。
|
|
292
|
+
* `*` = 全部申报,L2 清空;数组 = kind 或 Error 族覆盖。
|
|
293
|
+
* 申报 ≠ ignoreThrows:前者是「这是有意 fail-fast」,后者是「迁移期先别管」。
|
|
294
|
+
*/
|
|
295
|
+
declare function filterDeclaredThrows(effects: MayThrowEffect[], declared: readonly string[] | "*" | undefined): MayThrowEffect[];
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* 共享纯类型结点(AstEnv / HofCollectCtx / HofSite / RelSource)。
|
|
299
|
+
*
|
|
300
|
+
* 这些类型曾形成 ast-env ↔ hof ↔ abs-fn 的类型环(ast-env 引 HofCollectCtx,
|
|
301
|
+
* hof/abs-fn 引 AstEnv)。抽到本叶模块(只依赖 abs/term/babel,不回指
|
|
302
|
+
* ast-env/hof/abs-fn)后,三个消费方都从这里取类型,环即断。
|
|
303
|
+
*
|
|
304
|
+
* 稳定导入路径不变:ast-env.ts 重导出 AstEnv,hof.ts 重导出 HOF 三类型。
|
|
305
|
+
*/
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* 关系来源标记:P4 豁免与 diagnostics 依赖它,禁止隐式猜。
|
|
309
|
+
* - promote:使用驱动提升(generalize symbolic / instantiate 局部)
|
|
310
|
+
* - refine:@nudo:contract 契约
|
|
311
|
+
* - relationFn:harvest/mock/测试直接写入 fnRels 时的预留来源(P4 error 路径)
|
|
312
|
+
*/
|
|
313
|
+
type RelSource = "promote" | "refine" | "relationFn";
|
|
314
|
+
type HofSite = {
|
|
315
|
+
/** 形参名(函数形参) */
|
|
316
|
+
param: string;
|
|
317
|
+
/** 输入侧 term:实参的 term(element 的 var/lit/app);map 1 个、reduce 2 个 */
|
|
318
|
+
argTerms: Term[];
|
|
319
|
+
/** 输出侧:归纳出的返回 Abs */
|
|
320
|
+
result: Abs;
|
|
321
|
+
/** 源位置,便于 diagnostics */
|
|
322
|
+
loc?: {
|
|
323
|
+
line: number;
|
|
324
|
+
column: number;
|
|
325
|
+
};
|
|
326
|
+
};
|
|
327
|
+
/**
|
|
328
|
+
* run 局部 collector(与 Phi 并列,不进 Φ 合并)。
|
|
329
|
+
* symbolic 一次跑:安装并沉淀到 PolyFn;instantiate 重跑:装 throwaway
|
|
330
|
+
* 副本——形状提升仍生效,结果不写回共享状态(见 generalize.ts run())。
|
|
331
|
+
*/
|
|
332
|
+
type HofCollectCtx = {
|
|
333
|
+
/** 本次归纳的形参名集合(身份判定用) */
|
|
334
|
+
paramNames: ReadonlySet<string>;
|
|
335
|
+
/** 本次 typeParams 的 α id 集合(term 复用白名单) */
|
|
336
|
+
alphaIds: Set<string>;
|
|
337
|
+
/** fresh α 计数 */
|
|
338
|
+
freshSeq: {
|
|
339
|
+
n: number;
|
|
340
|
+
};
|
|
341
|
+
sites: HofSite[];
|
|
342
|
+
fnRels: Map<string, {
|
|
343
|
+
abs: Abs;
|
|
344
|
+
source: RelSource;
|
|
345
|
+
}>;
|
|
346
|
+
entryShapes: Map<string, {
|
|
347
|
+
abs: Abs;
|
|
348
|
+
source: RelSource;
|
|
349
|
+
}>;
|
|
350
|
+
};
|
|
351
|
+
type AstEnv = {
|
|
352
|
+
vars: Map<string, Abs>;
|
|
353
|
+
/** 用户函数:name → { params, body } */
|
|
354
|
+
fns: Map<string, {
|
|
355
|
+
params: string[];
|
|
356
|
+
body: Node;
|
|
357
|
+
async?: boolean;
|
|
358
|
+
kind?: string;
|
|
359
|
+
}>;
|
|
360
|
+
/** class 表(旁路,withVar 必须保留) */
|
|
361
|
+
classes?: Map<string, unknown>;
|
|
362
|
+
/** 当前正在求值的方法所属类名(super.x() 从它的父类派发) */
|
|
363
|
+
currentOwner?: string;
|
|
364
|
+
/** P2:generalize symbolic 跑的 HOF collector(run 局部,不进 Φ) */
|
|
365
|
+
hofCollect?: HofCollectCtx;
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
export { $tryDigestSoft as $, type Abs as A, absToString as B, type Confidence as C, and as D, ERROR_FAMILY as E, anyAbs as F, anyVar as G, type HofCollectCtx as H, type ImplicationOracle as I, app as J, bigintLit as K, type LiteralValue as L, type MayThrowEffect as M, bool as N, boolLit as O, type PrimName as P, confJoin as Q, type RelSource as R, type Shape as S, type Term as T, emptyPhi as U, eq as V, ge as W, geNum as X, getImplicationOracle as Y, gt as Z, gtNum as _, type Pred as a, implies as a0, isBigPrim as a1, isExactLit as a2, isNumPrim as a3, isStrPrim as a4, le as a5, leNum as a6, lit as a7, litValue as a8, lt as a9, termToString as aA, unknown as aB, v as aC, ltNum as aa, ne as ab, negatePred as ac, never as ad, not as ae, num as af, numLit as ag, numVar as ah, obj as ai, or as aj, pFalse as ak, pTrue as al, phiAnd as am, predEquals as an, predToString as ao, predVars as ap, primToTypeof as aq, ptypeof as ar, setImplicationOracle as as, shapeOfTerm as at, shapeToString as au, simplifyTerm as av, str as aw, strLit as ax, substPred as ay, termEquals as az, type Phi as b, type AstEnv as c, $tryMarkSoft as d, $tryReleaseSoft as e, errorTypeAbs as f, filterDeclaredThrows as g, filterGateThrows as h, filterIgnoredThrows as i, flushMayThrowEffects as j, formatThrowsAbs as k, getMayThrowCollector as l, isThrowsIgnored as m, mayThrowEffectsToAbs as n, orphanMayThrowEffects as o, popMayThrowFrame as p, pushMayThrowFrame as q, recordMayThrow as r, runWithMayThrowSession as s, setMayThrowCollector as t, throwAbsToKinds as u, throwsKindCovered as v, type HofSite as w, TYPEOF_NAMES as x, type TypeofName as y, abs as z };
|