diff options
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/lux/macro/poly.lux | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/stdlib/source/lux/macro/poly.lux b/stdlib/source/lux/macro/poly.lux index 97ec08ff7..9be5a2ad4 100644 --- a/stdlib/source/lux/macro/poly.lux +++ b/stdlib/source/lux/macro/poly.lux @@ -153,7 +153,7 @@ (do p.Monad<Parser> [headT any] (let [members (<flattener> (type.un-name headT))] - (if (n/> +1 (list.size members)) + (if (n/> |1 (list.size members)) (local members poly) (p.fail (ex.construct <exception> headT))))))] @@ -166,7 +166,7 @@ (do p.Monad<Parser> [headT any #let [[num-arg bodyT] (type.flatten-univ-q (type.un-name headT))]] - (if (n/= +0 num-arg) + (if (n/= |0 num-arg) (p.fail (ex.construct not-polymorphic headT)) (wrap [num-arg bodyT])))) @@ -178,22 +178,22 @@ [num-args non-poly] (local (list headT) polymorphic') env ..env #let [funcL (label funcI) - [all-varsL env'] (loop [current-arg +0 + [all-varsL env'] (loop [current-arg |0 env' env all-varsL (: (List Code) (list))] (if (n/< num-args current-arg) - (if (n/= +0 current-arg) + (if (n/= |0 current-arg) (let [varL (label (inc funcI))] (recur (inc current-arg) (|> env' (dict.put funcI [headT funcL]) (dict.put (inc funcI) [(#.Parameter (inc funcI)) varL])) (#.Cons varL all-varsL))) - (let [partialI (|> current-arg (n/* +2) (n/+ funcI)) + (let [partialI (|> current-arg (n/* |2) (n/+ funcI)) partial-varI (inc partialI) partial-varL (label partial-varI) - partialC (` ((~ funcL) (~+ (|> (list.n/range +0 (dec num-args)) - (list/map (|>> (n/* +2) inc (n/+ funcI) label)) + partialC (` ((~ funcL) (~+ (|> (list.n/range |0 (dec num-args)) + (list/map (|>> (n/* |2) inc (n/+ funcI) label)) list.reverse))))] (recur (inc current-arg) (|> env' @@ -212,7 +212,7 @@ (do p.Monad<Parser> [headT any #let [[inputsT outputT] (type.flatten-function (type.un-name headT))]] - (if (n/> +0 (list.size inputsT)) + (if (n/> |0 (list.size inputsT)) (p.and (local inputsT in-poly) (local (list outputT) out-poly)) (p.fail (ex.construct not-function headT))))) @@ -222,7 +222,7 @@ (do p.Monad<Parser> [headT any #let [[funcT paramsT] (type.flatten-application (type.un-name headT))]] - (if (n/= +0 (list.size paramsT)) + (if (n/= |0 (list.size paramsT)) (p.fail (ex.construct not-application headT)) (local (#.Cons funcT paramsT) poly)))) @@ -242,10 +242,10 @@ (def: (adjusted-idx env idx) (-> Env Nat Nat) - (let [env-level (n// +2 (dict.size env)) - parameter-level (n// +2 idx) - parameter-idx (n/% +2 idx)] - (|> env-level dec (n/- parameter-level) (n/* +2) (n/+ parameter-idx)))) + (let [env-level (n// |2 (dict.size env)) + parameter-level (n// |2 idx) + parameter-idx (n/% |2 idx)] + (|> env-level dec (n/- parameter-level) (n/* |2) (n/+ parameter-idx)))) (def: #export parameter (Poly Code) @@ -323,8 +323,8 @@ headT any] (case (type.un-name headT) (^multi (#.Apply (#.Named ["lux" "Nothing"] _) (#.Parameter funcT-idx)) - (n/= +0 (adjusted-idx env funcT-idx)) - [(dict.get +0 env) (#.Some [self-type self-call])]) + (n/= |0 (adjusted-idx env funcT-idx)) + [(dict.get |0 env) (#.Some [self-type self-call])]) (wrap self-call) _ @@ -335,7 +335,7 @@ (do p.Monad<Parser> [env ..env [funcT argsT] (apply (p.and any (p.many any))) - _ (local (list funcT) (..parameter! +0)) + _ (local (list funcT) (..parameter! |0)) allC (let [allT (list& funcT argsT)] (|> allT (monad.map @ (function.constant ..parameter)) @@ -425,13 +425,13 @@ (#.Parameter idx) (let [idx (adjusted-idx env idx)] - (if (n/= +0 idx) + (if (n/= |0 idx) (|> (dict.get idx env) maybe.assume product.left (to-code env)) (` (.$ (~ (code.nat (dec idx))))))) (#.Apply (#.Named ["lux" "Nothing"] _) (#.Parameter idx)) (let [idx (adjusted-idx env idx)] - (if (n/= +0 idx) + (if (n/= |0 idx) (|> (dict.get idx env) maybe.assume product.left (to-code env)) (undefined))) |