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