diff options
Diffstat (limited to '')
-rw-r--r-- | new-luxc/source/luxc/lang/extension/analysis/common.lux (renamed from new-luxc/source/luxc/lang/analysis/procedure/common.lux) | 46 |
1 files changed, 22 insertions, 24 deletions
diff --git a/new-luxc/source/luxc/lang/analysis/procedure/common.lux b/new-luxc/source/luxc/lang/extension/analysis/common.lux index ecdcd0bfd..079001b26 100644 --- a/new-luxc/source/luxc/lang/analysis/procedure/common.lux +++ b/new-luxc/source/luxc/lang/extension/analysis/common.lux @@ -17,20 +17,18 @@ (analysis ["&." common] [".A" function] [".A" case] - [".A" type])))) + [".A" type]))) + [///]) (exception: #export Incorrect-Procedure-Arity) (exception: #export Invalid-Syntax) ## [Utils] -(type: #export Proc - (-> &.Analyser &.Eval (List Code) (Meta la.Analysis))) - (type: #export Bundle - (Dict Text (-> Text Proc))) + (Dict Text (-> Text ///.Analysis))) (def: #export (install name unnamed) - (-> Text (-> Text Proc) + (-> Text (-> Text ///.Analysis) (-> Bundle Bundle)) (dict.put name unnamed)) @@ -48,7 +46,7 @@ " Actual Arity: " (|> actual nat-to-int %i))) (def: (simple proc inputsT+ outputT) - (-> Text (List Type) Type Proc) + (-> Text (List Type) Type ///.Analysis) (let [num-expected (list.size inputsT+)] (function [analyse eval args] (let [num-actual (list.size args)] @@ -64,25 +62,25 @@ (&.throw Incorrect-Procedure-Arity (wrong-arity proc num-expected num-actual))))))) (def: #export (nullary valueT proc) - (-> Type Text Proc) + (-> Type Text ///.Analysis) (simple proc (list) valueT)) (def: #export (unary inputT outputT proc) - (-> Type Type Text Proc) + (-> Type Type Text ///.Analysis) (simple proc (list inputT) outputT)) (def: #export (binary subjectT paramT outputT proc) - (-> Type Type Type Text Proc) + (-> Type Type Type Text ///.Analysis) (simple proc (list subjectT paramT) outputT)) (def: #export (trinary subjectT param0T param1T outputT proc) - (-> Type Type Type Type Text Proc) + (-> Type Type Type Type Text ///.Analysis) (simple proc (list subjectT param0T param1T) outputT)) ## [Analysers] ## "lux is" represents reference/pointer equality. (def: (lux//is proc) - (-> Text Proc) + (-> Text ///.Analysis) (function [analyse eval args] (do macro.Monad<Meta> [[var-id varT] (&.with-type-env tc.var)] @@ -92,7 +90,7 @@ ## "lux try" provides a simple way to interact with the host platform's ## error-handling facilities. (def: (lux//try proc) - (-> Text Proc) + (-> Text ///.Analysis) (function [analyse eval args] (case args (^ (list opC)) @@ -107,7 +105,7 @@ (&.throw Incorrect-Procedure-Arity (wrong-arity proc +1 (list.size args)))))) (def: (lux//function proc) - (-> Text Proc) + (-> Text ///.Analysis) (function [analyse eval args] (case args (^ (list [_ (#.Symbol ["" func-name])] @@ -119,7 +117,7 @@ (&.throw Incorrect-Procedure-Arity (wrong-arity proc +3 (list.size args)))))) (def: (lux//case proc) - (-> Text Proc) + (-> Text ///.Analysis) (function [analyse eval args] (case args (^ (list input [_ (#.Record branches)])) @@ -129,7 +127,7 @@ (&.throw Incorrect-Procedure-Arity (wrong-arity proc +2 (list.size args)))))) (def: (lux//in-module proc) - (-> Text Proc) + (-> Text ///.Analysis) (function [analyse eval argsC+] (case argsC+ (^ (list [_ (#.Text module-name)] exprC)) @@ -146,7 +144,7 @@ (do-template [<name> <analyser>] [(def: (<name> proc) - (-> Text Proc) + (-> Text ///.Analysis) (function [analyse eval args] (case args (^ (list typeC valueC)) @@ -159,7 +157,7 @@ [lux//coerce typeA.analyse-coerce]) (def: (lux//check//type proc) - (-> Text Proc) + (-> Text ///.Analysis) (function [analyse eval args] (case args (^ (list valueC)) @@ -296,7 +294,7 @@ ))) (def: (array//get proc) - (-> Text Proc) + (-> Text ///.Analysis) (function [analyse eval args] (do macro.Monad<Meta> [[var-id varT] (&.with-type-env tc.var)] @@ -304,7 +302,7 @@ analyse eval args)))) (def: (array//put proc) - (-> Text Proc) + (-> Text ///.Analysis) (function [analyse eval args] (do macro.Monad<Meta> [[var-id varT] (&.with-type-env tc.var)] @@ -312,7 +310,7 @@ analyse eval args)))) (def: (array//remove proc) - (-> Text Proc) + (-> Text ///.Analysis) (function [analyse eval args] (do macro.Monad<Meta> [[var-id varT] (&.with-type-env tc.var)] @@ -355,7 +353,7 @@ ))) (def: (atom-new proc) - (-> Text Proc) + (-> Text ///.Analysis) (function [analyse eval args] (case args (^ (list initC)) @@ -370,7 +368,7 @@ (&.throw Incorrect-Procedure-Arity (wrong-arity proc +1 (list.size args)))))) (def: (atom-read proc) - (-> Text Proc) + (-> Text ///.Analysis) (function [analyse eval args] (do macro.Monad<Meta> [[var-id varT] (&.with-type-env tc.var)] @@ -378,7 +376,7 @@ analyse eval args)))) (def: (atom//compare-and-swap proc) - (-> Text Proc) + (-> Text ///.Analysis) (function [analyse eval args] (do macro.Monad<Meta> [[var-id varT] (&.with-type-env tc.var)] |