fez-lisp 1.6.61 → 1.6.63
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/lib/baked/std-T.js +1 -1
- package/package.json +1 -1
- package/src/check.js +13 -14
- package/src/types.js +8 -1
package/lib/baked/std-T.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export default [[[0,"the"],[1,"math:reverse"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:map"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:select"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:exclude"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:fold"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number"]]],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:enumerated-fold"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number"]]],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:every?"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"math:some?"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"math:enumerated-every?"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"math:enumerated-some?"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"math:enumerated-select"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:enumerated-exclude"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:log-taylor-series"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:collatz"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:maximum-index"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:minimum-index"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-def"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-get"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-set!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-del!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-set-and-get!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-increment!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-decrement!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-increment-and-get!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-decrement-and-get!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-add!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-subtract!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-multiply!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-divide!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-add-and-get!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-subtract-and-get!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-multiply-and-get!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-divide-and-get!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:max-sub-array-sum"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:median"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:mean"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:subset"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:permutations"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:combinations"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:combinations-n"],[[0,"lambda"],[1,"Unknown[]"],[1,"Number"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:variants"],[[0,"lambda"],[1,"Unknown[]"],[1,"Number"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:unique"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:divisors"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:remove-leading-zeroes"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:sort"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:flat-one"],[[0,"lambda"],[1,"Number[][]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"matrix:zeroes"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number[][]"]]]],[[0,"the"],[1,"matrix:ones"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number[][]"]]]],[[0,"the"],[1,"matrix:find-index"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"matrix:points"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[][]"]]]],[[0,"the"],[1,"var:def"],[[0,"lambda"],[1,"Any"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"var:get"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"var:set!"],[[0,"lambda"],[1,"Unknown[]"],[1,"Any"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"var:del!"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"var:set-and-get!"],[[0,"lambda"],[1,"Unknown[]"],[1,"Any"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:first"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:second"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:third"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:last"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:get"],[[0,"lambda"],[1,"Unknown[]"],[1,"Number"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:get-number"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"array:get-nested-number-1"],[[0,"lambda"],[1,"Number[][]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"array:get-nested-number-2"],[[0,"lambda"],[1,"Number[][][]"],[1,"Number"],[[0,"do"],[1,"Number[][]"]]]],[[0,"the"],[1,"array:get-array"],[[0,"lambda"],[1,"Unknown[][]"],[1,"Number"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"array:get-nested-array-1"],[[0,"lambda"],[1,"Unknown[][]"],[1,"Number"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"array:get-nested-array-2"],[[0,"lambda"],[1,"Unknown[][][]"],[1,"Number"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"array:get-boolean"],[[0,"lambda"],[1,"Boolean[]"],[1,"Number"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"array:get-nested-boolean-1"],[[0,"lambda"],[1,"Boolean[][]"],[1,"Number"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"array:get-nested-boolean-2"],[[0,"lambda"],[1,"Boolean[][][]"],[1,"Number"],[[0,"do"],[1,"Boolean[][]"]]]],[[0,"the"],[1,"array:transform"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown[]"],[1,"Unknown"],[[0,"do"],[1,"Unknown"]]],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"array:reduce"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Number"],[1,"Unknown"],[[0,"do"],[1,"Number"]]],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"array:enumerated-reduce"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Number"],[1,"Unknown"],[1,"Number"],[[0,"do"],[1,"Number"]]],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"array:zip"],[[0,"lambda"],[1,"Unknown[]"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"array:push!"],[[0,"lambda"],[1,"Unknown[]"],[1,"Any"],[[0,"do"],[1,"Unknown"]]]],[[0,"the"],[1,"array:append!"],[[0,"lambda"],[1,"Unknown[]"],[1,"Any"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"array:fold"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown"],[1,"Unknown"],[[0,"do"],[1,"Any"]]],[1,"Unknown"],[[0,"do"],[1,"Unknown"]]]],[[0,"the"],[1,"list:fold"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown"],[1,"Unknown"],[[0,"do"],[1,"Any"]]],[1,"Unknown"],[[0,"do"],[1,"Unknown"]]]],[[0,"the"],[1,"bools:fold"],[[0,"lambda"],[1,"Boolean[]"],[[0,"lambda"],[1,"Boolean"],[1,"Boolean"],[[0,"do"],[1,"Boolean"]]],[1,"Boolean"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"boole:def-strict"],[[0,"lambda"],[1,"Boolean"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:get"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"boole:set!"],[[0,"lambda"],[1,"Boolean[]"],[1,"Boolean"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:toggle!"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:true!"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:false!"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:true?"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"boole:false?"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"from:string->array"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"from:array->string"],[[0,"lambda"],[1,"Unknown[][]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:strings->integers"],[[0,"lambda"],[1,"Unknown[][]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:string->integer"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"from:integer->string"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:strings->floats"],[[0,"lambda"],[1,"Unknown[][]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:string->float"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"from:float->string"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:chars->digits"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:digits->chars"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:digits->integer"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"from:integer->digits"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:chars->set"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Unknown[][]"]]]]]
|
1
|
+
export default [[[0,"the"],[1,"math:reverse"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:map"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:select"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:exclude"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:fold"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number"]]],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:enumerated-fold"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number"]]],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:every?"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"math:some?"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"math:enumerated-every?"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"math:enumerated-some?"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"math:enumerated-select"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:enumerated-exclude"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:log-taylor-series"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:collatz"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:maximum-index"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:minimum-index"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-def"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-get"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-set!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-del!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-set-and-get!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-increment!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-decrement!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-increment-and-get!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-decrement-and-get!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-add!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-subtract!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-multiply!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-divide!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-add-and-get!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-subtract-and-get!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-multiply-and-get!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-divide-and-get!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:max-sub-array-sum"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:median"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:mean"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:subset"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:permutations"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:combinations"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:combinations-n"],[[0,"lambda"],[1,"Unknown[]"],[1,"Number"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:variants"],[[0,"lambda"],[1,"Unknown[]"],[1,"Number"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:unique"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:divisors"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:remove-leading-zeroes"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:sort"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:flat-one"],[[0,"lambda"],[1,"Number[][]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"matrix:zeroes"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number[][]"]]]],[[0,"the"],[1,"matrix:ones"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number[][]"]]]],[[0,"the"],[1,"matrix:find-index"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"matrix:points"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[][]"]]]],[[0,"the"],[1,"var:def"],[[0,"lambda"],[1,"Any"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"var:get"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"var:set!"],[[0,"lambda"],[1,"Unknown[]"],[1,"Any"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"var:del!"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"var:set-and-get!"],[[0,"lambda"],[1,"Unknown[]"],[1,"Any"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:first"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:second"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:third"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:last"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:get"],[[0,"lambda"],[1,"Unknown[]"],[1,"Number"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:get-number"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"array:get-nested-number-1"],[[0,"lambda"],[1,"Number[][]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"array:get-nested-number-2"],[[0,"lambda"],[1,"Number[][][]"],[1,"Number"],[[0,"do"],[1,"Number[][]"]]]],[[0,"the"],[1,"array:get-array"],[[0,"lambda"],[1,"Unknown[][]"],[1,"Number"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"array:get-nested-array-1"],[[0,"lambda"],[1,"Unknown[][]"],[1,"Number"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"array:get-nested-array-2"],[[0,"lambda"],[1,"Unknown[][][]"],[1,"Number"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"array:get-boolean"],[[0,"lambda"],[1,"Boolean[]"],[1,"Number"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"array:get-nested-boolean-1"],[[0,"lambda"],[1,"Boolean[][]"],[1,"Number"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"array:get-nested-boolean-2"],[[0,"lambda"],[1,"Boolean[][][]"],[1,"Number"],[[0,"do"],[1,"Boolean[][]"]]]],[[0,"the"],[1,"array:transform"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown[]"],[1,"Unknown"],[[0,"do"],[1,"Unknown"]]],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"array:reduce"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Number"],[1,"Unknown"],[[0,"do"],[1,"Number"]]],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"array:enumerated-reduce"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Number"],[1,"Unknown"],[1,"Number"],[[0,"do"],[1,"Number"]]],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"array:zip"],[[0,"lambda"],[1,"Unknown[]"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"array:unzip"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"array:push!"],[[0,"lambda"],[1,"Unknown[]"],[1,"Any"],[[0,"do"],[1,"Unknown"]]]],[[0,"the"],[1,"array:append!"],[[0,"lambda"],[1,"Unknown[]"],[1,"Any"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"array:fold"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown"],[1,"Unknown"],[[0,"do"],[1,"Any"]]],[1,"Unknown"],[[0,"do"],[1,"Unknown"]]]],[[0,"the"],[1,"list:fold"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown"],[1,"Unknown"],[[0,"do"],[1,"Any"]]],[1,"Unknown"],[[0,"do"],[1,"Unknown"]]]],[[0,"the"],[1,"bools:fold"],[[0,"lambda"],[1,"Boolean[]"],[[0,"lambda"],[1,"Boolean"],[1,"Boolean"],[[0,"do"],[1,"Boolean"]]],[1,"Boolean"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"boole:def-strict"],[[0,"lambda"],[1,"Boolean"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:get"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"boole:set!"],[[0,"lambda"],[1,"Boolean[]"],[1,"Boolean"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:toggle!"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:true!"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:false!"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:true?"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"boole:false?"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"from:string->array"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"from:array->string"],[[0,"lambda"],[1,"Unknown[][]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:strings->integers"],[[0,"lambda"],[1,"Unknown[][]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:string->integer"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"from:integer->string"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:strings->floats"],[[0,"lambda"],[1,"Unknown[][]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:string->float"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"from:float->string"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:chars->digits"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:digits->chars"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:digits->integer"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"from:integer->digits"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:chars->set"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Unknown[][]"]]]]]
|
package/package.json
CHANGED
package/src/check.js
CHANGED
@@ -47,7 +47,7 @@ import {
|
|
47
47
|
NUMBER_SUBTYPE,
|
48
48
|
UNKNOWN_SUBTYPE,
|
49
49
|
SubType,
|
50
|
-
|
50
|
+
GET_ARRAY_INFERENCE_SET
|
51
51
|
} from './types.js'
|
52
52
|
import {
|
53
53
|
Brr,
|
@@ -202,7 +202,11 @@ export const setTypeRef = (stats, value) =>
|
|
202
202
|
(isUnknownType(stats) || isAnyType(stats)) &&
|
203
203
|
(stats[TYPE_PROP] = value[TYPE_PROP])
|
204
204
|
export const setReturnRef = (stats, value) => {
|
205
|
-
if
|
205
|
+
// to prevent overiding the type of sepcial form or if the type of the function is any
|
206
|
+
// any could also be deliberate as some functions like array:get and array;first
|
207
|
+
// are sort of special forms too
|
208
|
+
// In general anything that has type of any should not be infered
|
209
|
+
if (SPECIAL_FORMS_SET.has(value[SIGNATURE]) || isAnyReturn(value)) {
|
206
210
|
return setReturn(stats, value)
|
207
211
|
}
|
208
212
|
return isUnknownReturn(stats) && (stats[RETURNS] = value[RETURNS])
|
@@ -213,6 +217,7 @@ export const setReturnToTypeRef = (stats, value) => {
|
|
213
217
|
(stats[RETURNS] = value[TYPE_PROP])
|
214
218
|
)
|
215
219
|
}
|
220
|
+
export const setStats = (a, b) => (a[STATS] = b[STATS])
|
216
221
|
export const setStatsRef = (a, b) => (a[STATS] = b[STATS])
|
217
222
|
export const setTypeToReturnRef = (stats, value) => {
|
218
223
|
// To prevent getters overwritting the array subtype
|
@@ -615,11 +620,9 @@ const resolveGetter = ({ rem, prop, name, env }) => {
|
|
615
620
|
setPropToAtom(env[name][STATS], prop)
|
616
621
|
setPropToSubReturn(env[name][STATS], prop, env[array[VALUE]][STATS])
|
617
622
|
} else if (!isAtom && isCollection) {
|
623
|
+
const [f, ...r] = env[array[VALUE]][STATS][RETURNS][1].types
|
618
624
|
setPropToReturn(env[name][STATS], prop, {
|
619
|
-
[RETURNS]: [
|
620
|
-
env[array[VALUE]][STATS][RETURNS][1].types[0],
|
621
|
-
new SubType(env[array[VALUE]][STATS][RETURNS][1].types.slice(1))
|
622
|
-
]
|
625
|
+
[RETURNS]: [f, new SubType(r)]
|
623
626
|
})
|
624
627
|
} else return false
|
625
628
|
} else return false
|
@@ -635,13 +638,9 @@ const resolveGetter = ({ rem, prop, name, env }) => {
|
|
635
638
|
setPropToAtom(env[name][STATS], prop)
|
636
639
|
setPropToSubType(env[name][STATS], prop, env[array[VALUE]][STATS])
|
637
640
|
} else if (!isAtom && isCollection) {
|
641
|
+
const [f, ...r] = env[array[VALUE]][STATS][TYPE_PROP][1].types
|
638
642
|
setPropToType(env[name][STATS], prop, {
|
639
|
-
[TYPE_PROP]: [
|
640
|
-
env[array[VALUE]][STATS][TYPE_PROP][1].types[0],
|
641
|
-
new SubType(
|
642
|
-
env[array[VALUE]][STATS][TYPE_PROP][1].types.slice(1)
|
643
|
-
)
|
644
|
-
]
|
643
|
+
[TYPE_PROP]: [f, new SubType(r)]
|
645
644
|
})
|
646
645
|
} else return false
|
647
646
|
} else return false
|
@@ -795,7 +794,7 @@ const initArrayType = ({ rem, env }) => {
|
|
795
794
|
subT.add(COLLECTION)
|
796
795
|
head = head[0]
|
797
796
|
}
|
798
|
-
if (head) subT.add(head[1].types[0])
|
797
|
+
if (head && head[1].types.length) subT.add(head[1].types[0])
|
799
798
|
}
|
800
799
|
const [main, sub] = ret[0]
|
801
800
|
if (isSubType(sub) && sub.types.at(-1) === COLLECTION) sub.types.pop()
|
@@ -852,7 +851,7 @@ const resolveReturnType = ({
|
|
852
851
|
break
|
853
852
|
default:
|
854
853
|
{
|
855
|
-
if (returns[VALUE]
|
854
|
+
if (GET_ARRAY_INFERENCE_SET.has(returns[VALUE]))
|
856
855
|
resolveGetter({ rem, prop, name, env })
|
857
856
|
checkPredicateNameDeep(name, exp, exp.slice(1), returns)
|
858
857
|
// TODO: DRY
|
package/src/types.js
CHANGED
@@ -36,7 +36,14 @@ export const IS_ARGUMENT = 'is_arg'
|
|
36
36
|
export const NIL = 'nil'
|
37
37
|
export const TRUE_WORD = 'true'
|
38
38
|
export const FALSE_WORD = 'false'
|
39
|
-
export const
|
39
|
+
export const GET_ARRAY_INFERENCE_SET = new Set([
|
40
|
+
'array:get',
|
41
|
+
'array:at',
|
42
|
+
'array:first',
|
43
|
+
'array:second',
|
44
|
+
'array:third',
|
45
|
+
'array:last'
|
46
|
+
])
|
40
47
|
export class SubType {
|
41
48
|
constructor(args) {
|
42
49
|
this.types = []
|