1sig mlt.
2
3
4% from mltunify:
5
6kind poly type.
7kind substitution type.
8kind difference type.
9type emp substitution.
10type sub poly -> poly -> substitution -> substitution.
11type unify1 (list poly) -> (list poly) -> poly -> poly -> substitution -> o.
12type unify (list poly) -> poly -> poly -> substitution -> o.
13type sub_apply poly -> substitution -> poly -> o.
14type diff poly -> poly -> difference.
15type rigid poly -> o.
16type vrd poly -> poly -> o.
17type var poly -> o.
18type distinct-vars poly -> poly -> o.
19type occur-check poly -> poly -> o.
20type transform (list difference) -> (list difference) -> substitution -> substitution -> o.
21type copypoly poly -> poly -> o.
22type unify0 (list difference) -> substitution -> substitution -> o.
23type diff-subst substitution -> (list difference) -> (list
24difference) -> o.
25type sub-subst substitution -> substitution -> substitution -> o.
26type add-trivials (list poly) -> substitution -> substitution -> o.
27type in-domain poly -> substitution -> o.
28type not-indomain poly -> substitution -> o.
29type integer poly.
30type real poly.
31type arr poly -> poly -> poly.
32type u poly.
33type w poly.
34type q poly.
35type update-sig (list poly) -> o -> o.
36
37type setsub poly -> poly -> o.
38type  member  (poly -> list poly -> o).
39type  append  (list poly -> list poly -> list poly -> o).
40
41%  for mltyper:
42
43
44kind tm type.
45type abs (tm -> tm) -> tm.
46type app tm -> tm -> tm.
47type let (tm -> tm) -> tm -> tm.
48type zero tm.
49type succ tm.
50type op tm.
51type op2 tm.
52type op3 tm.
53type op4 tm. type op5 tm. type op6 tm.
54type all      (poly -> poly) -> poly.
55type newvar (poly -> substitution) -> substitution.
56type typeunify (list poly) -> poly -> poly -> substitution -> o.
57type merge-sub substitution -> substitution -> substitution -> o.
58type append-sub substitution -> substitution -> substitution -> o.
59type merge-type poly -> poly -> poly -> o.
60type typesub poly -> substitution -> poly -> o.
61type apply_sub       poly -> substitution -> poly -> o.
62type update-sub substitution -> substitution -> substitution -> o.
63type typeunify2 (list poly) -> poly -> poly -> substitution -> o.
64type fill-out substitution -> poly -> substitution -> poly -> o.
65type monotype poly -> o.
66type polytype (list poly) -> substitution -> tm -> poly -> o.
67type resolve-for poly -> (list poly) -> substitution -> substitution -> o.
68type rsub2 (list poly) -> poly -> substitution -> substitution -> o.
69type rsub3 (list poly) -> (list poly) -> poly -> substitution -> substitution -> o.
70type collect-for poly -> substitution -> (list poly) -> substitution -> o.
71type resolve-sub (list poly) -> (list poly) -> substitution -> substitution -> o.
72type membrest poly -> (list poly) -> (list poly) -> o.
73
74type infer-type tm -> poly -> o.
75type remvac poly -> poly -> o.
76type appear-in poly -> poly -> o.
77
78type go o.
79type example, tryonce, tryonce_ans  tm -> poly -> o.
80
81
82