From 2dbbaaec93a53f8dd0b96a0028b9cf125c9066cd Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Sun, 12 Sep 2021 15:39:55 -0400 Subject: Re-named \ => # && \\ => ## --- stdlib/source/library/lux.lux | 778 +++++++++++++++++++++--------------------- 1 file changed, 389 insertions(+), 389 deletions(-) (limited to 'stdlib/source/library/lux.lux') diff --git a/stdlib/source/library/lux.lux b/stdlib/source/library/lux.lux index 7339ac34d..8f8032699 100644 --- a/stdlib/source/library/lux.lux +++ b/stdlib/source/library/lux.lux @@ -823,7 +823,7 @@ (failure "Wrong syntax for $'")} tokens)) -(def:'' .private (list\each f xs) +(def:'' .private (list#each f xs) {#UnivQ {#End} {#UnivQ {#End} {#Function {#Function {#Parameter 3} {#Parameter 1}} @@ -833,7 +833,7 @@ {#End} {#Item x xs'} - {#Item (f x) (list\each f xs')}} + {#Item (f x) (list#each f xs')}} xs)) (def:'' .private Replacement_Environment @@ -849,7 +849,7 @@ {#End}} [xs ys])) -(def:'' .private (text\= reference sample) +(def:'' .private (text#= reference sample) {#Function Text {#Function Text Bit}} ("lux text =" reference sample)) @@ -864,7 +864,7 @@ #0 (replacement for environment')} - (text\= k for))} + (text#= k for))} environment)) (def:'' .private (with_replacements reps syntax) @@ -878,13 +878,13 @@ (..replacement name reps)) [meta {#Form parts}] - [meta {#Form (list\each (with_replacements reps) parts)}] + [meta {#Form (list#each (with_replacements reps) parts)}] [meta {#Variant members}] - [meta {#Variant (list\each (with_replacements reps) members)}] + [meta {#Variant (list#each (with_replacements reps) members)}] [meta {#Tuple members}] - [meta {#Tuple (list\each (with_replacements reps) members)}] + [meta {#Tuple (list#each (with_replacements reps) members)}] _ syntax} @@ -897,7 +897,7 @@ ("lux type as" Int param) ("lux type as" Int subject)))) -(def:'' .private (list\mix f init xs) +(def:'' .private (list#mix f init xs) ... (All (_ a b) (-> (-> b a a) a (List b) a)) {#UnivQ {#End} {#UnivQ {#End} {#Function {#Function {#Parameter 1} {#Function {#Parameter 3} @@ -909,13 +909,13 @@ init {#Item x xs'} - (list\mix f (f x init) xs')} + (list#mix f (f x init) xs')} xs)) -(def:'' .private (list\size list) +(def:'' .private (list#size list) {#UnivQ {#End} {#Function ($' List {#Parameter 1}) Nat}} - (list\mix (function'' [_ acc] ("lux i64 +" 1 acc)) 0 list)) + (list#mix (function'' [_ acc] ("lux i64 +" 1 acc)) 0 list)) (def:'' .private (let$ binding value body) {#Function Code {#Function Code {#Function Code Code}}} @@ -985,7 +985,7 @@ ... Recur {#Primitive name parameters} - {#Primitive name (list\each (__adjusted_quantified_type__ permission depth) + {#Primitive name (list#each (__adjusted_quantified_type__ permission depth) parameters)} {#Sum left right} @@ -1050,12 +1050,12 @@ #scopes scopes #type_context _ #host _ #seed _ #expected _ #location _ #extensions _ #scope_type_vars _ #eval _] - (list\mix (function'' [scope verdict] + (list#mix (function'' [scope verdict] ({#1 #1 _ ({[#name _ #inner _ #captured _ #locals [#counter _ #mappings locals]] - (list\mix (function'' [local verdict] + (list#mix (function'' [local verdict] ({[local _] ({#1 #1 _ ("lux text =" ..quantification_level local)} verdict)} @@ -1084,13 +1084,13 @@ (let$ self_name (quantified_type_parameter 0) ({[_ raw] raw} - (list\mix (function'' [parameter offset,body'] + (list#mix (function'' [parameter offset,body'] ({[offset body'] [("lux i64 +" 2 offset) (let$ parameter (quantified_type_parameter ("lux i64 +" offset 1)) (UnivQ$ body'))]} offset,body')) - [0 (with_quantification (list\size args) + [0 (with_quantification (list#size args) body)] args))))} args)) @@ -1116,13 +1116,13 @@ (let$ self_name (quantified_type_parameter 0) ({[_ raw] raw} - (list\mix (function'' [parameter offset,body'] + (list#mix (function'' [parameter offset,body'] ({[offset body'] [("lux i64 +" 2 offset) (let$ parameter (quantified_type_parameter ("lux i64 +" offset 1)) (ExQ$ body'))]} offset,body')) - [0 (with_quantification (list\size args) + [0 (with_quantification (list#size args) body)] args))))} args)) @@ -1132,10 +1132,10 @@ {#Left "Wrong syntax for Ex"}} tokens)) -(def:'' .private (list\reversed list) +(def:'' .private (list#reversed list) (All (_ a) {#Function ($' List a) ($' List a)}) - (list\mix ("lux type check" (All (_ a) + (list#mix ("lux type check" (All (_ a) {#Function a {#Function ($' List a) ($' List a)}}) (function'' [head tail] {#Item head tail})) {#End} @@ -1143,7 +1143,7 @@ (macro:' .public (-> tokens) ({{#Item output inputs} - (in_meta {#Item (list\mix ("lux type check" {#Function Code {#Function Code Code}} + (in_meta {#Item (list#mix ("lux type check" {#Function Code {#Function Code Code}} (function'' [i o] (variant$ {#Item (identifier$ [..prelude_module "#Function"]) {#Item i {#Item o {#End}}}}))) output inputs) @@ -1151,39 +1151,39 @@ _ (failure "Wrong syntax for ->")} - (list\reversed tokens))) + (list#reversed tokens))) (macro:' .public (list xs) - (in_meta {#Item (list\mix |#Item| |#End| (list\reversed xs)) + (in_meta {#Item (list#mix |#Item| |#End| (list#reversed xs)) {#End}})) (macro:' .public (list& xs) ({{#Item last init} - (in_meta (list (list\mix |#Item| last init))) + (in_meta (list (list#mix |#Item| last init))) _ (failure "Wrong syntax for list&")} - (list\reversed xs))) + (list#reversed xs))) (macro:' .public (Union tokens) ({{#End} (in_meta (list (identifier$ [..prelude_module "Nothing"]))) {#Item last prevs} - (in_meta (list (list\mix (function'' [left right] (variant$ (list (identifier$ [..prelude_module "#Sum"]) left right))) + (in_meta (list (list#mix (function'' [left right] (variant$ (list (identifier$ [..prelude_module "#Sum"]) left right))) last prevs)))} - (list\reversed tokens))) + (list#reversed tokens))) (macro:' .public (Tuple tokens) ({{#End} (in_meta (list (identifier$ [..prelude_module "Any"]))) {#Item last prevs} - (in_meta (list (list\mix (function'' [left right] (variant$ (list (identifier$ [..prelude_module "#Product"]) left right))) + (in_meta (list (list#mix (function'' [left right] (variant$ (list (identifier$ [..prelude_module "#Product"]) left right))) last prevs)))} - (list\reversed tokens))) + (list#reversed tokens))) (macro:' .private (function' tokens) (let'' [name tokens'] ({{#Item [[_ {#Identifier ["" name]}] tokens']} @@ -1199,12 +1199,12 @@ {#Item [harg targs]} (in_meta (list (form$ (list (tuple$ (list (local_identifier$ name) harg)) - (list\mix (function'' [arg body'] + (list#mix (function'' [arg body'] (form$ (list (tuple$ (list (local_identifier$ "") arg)) body'))) body - (list\reversed targs))))))} + (list#reversed targs))))))} args) _ @@ -1256,14 +1256,14 @@ (macro:' .private (let' tokens) ({{#Item [[_ {#Tuple bindings}] {#Item [body {#End}]}]} - (in_meta (list (list\mix ("lux type check" (-> (Tuple Code Code) Code + (in_meta (list (list#mix ("lux type check" (-> (Tuple Code Code) Code Code) (function' [binding body] ({[label value] (form$ (list (variant$ (list label body)) value))} binding))) body - (list\reversed (pairs bindings))))) + (list#reversed (pairs bindings))))) _ (failure "Wrong syntax for let'")} @@ -1295,10 +1295,10 @@ (|#Item| token (untemplated_list tokens'))} tokens)) -(def:''' .private (list\composite xs ys) +(def:''' .private (list#composite xs ys) (All (_ a) (-> ($' List a) ($' List a) ($' List a))) ({{#Item x xs'} - {#Item x (list\composite xs' ys)} + {#Item x (list#composite xs' ys)} {#End} ys} @@ -1307,13 +1307,13 @@ (def:''' .private (right_associativity op a1 a2) (-> Code Code Code Code) ({[_ {#Form parts}] - (form$ (list\composite parts (list a1 a2))) + (form$ (list#composite parts (list a1 a2))) _ (form$ (list op a1 a2))} op)) -(def:''' .private (function\flipped func) +(def:''' .private (function#flipped func) (All (_ a b c) (-> (-> a b c) (-> b a c))) (function' [right left] @@ -1322,7 +1322,7 @@ (macro:' .public (_$ tokens) ({{#Item op tokens'} ({{#Item first nexts} - (in_meta (list (list\mix (function\flipped (right_associativity op)) first nexts))) + (in_meta (list (list#mix (function#flipped (right_associativity op)) first nexts))) _ (failure "Wrong syntax for _$")} @@ -1335,11 +1335,11 @@ (macro:' .public ($_ tokens) ({{#Item op tokens'} ({{#Item last prevs} - (in_meta (list (list\mix (right_associativity op) last prevs))) + (in_meta (list (list#mix (right_associativity op) last prevs))) _ (failure "Wrong syntax for $_")} - (list\reversed tokens')) + (list#reversed tokens')) _ (failure "Wrong syntax for $_")} @@ -1395,7 +1395,7 @@ ({{#Item monad {#Item [_ {#Tuple bindings}] {#Item body {#End}}}} (let' [g!in (local_identifier$ "in") g!then (local_identifier$ " then ") - body' (list\mix ("lux type check" (-> (Tuple Code Code) Code Code) + body' (list#mix ("lux type check" (-> (Tuple Code Code) Code Code) (function' [binding body'] (let' [[var value] binding] ({[_ {#Identifier [module short]}] @@ -1415,7 +1415,7 @@ value))} var)))) body - (list\reversed (pairs bindings)))] + (list#reversed (pairs bindings)))] (in_meta (list (form$ (list (variant$ (list (tuple$ (list (identifier$ [..prelude_module "#in"]) g!in (identifier$ [..prelude_module "#then"]) g!then)) body')) @@ -1425,7 +1425,7 @@ (failure "Wrong syntax for do")} tokens)) -(def:''' .private (monad\each m f xs) +(def:''' .private (monad#each m f xs) (All (_ m a b) (-> ($' Monad m) (-> a ($' m b)) @@ -1438,11 +1438,11 @@ {#Item x xs'} (do m [y (f x) - ys (monad\each m f xs')] + ys (monad#each m f xs')] (in {#Item y ys}))} xs))) -(def:''' .private (monad\mix m f y xs) +(def:''' .private (monad#mix m f y xs) (All (_ m a b) (-> ($' Monad m) (-> a b ($' m b)) @@ -1456,7 +1456,7 @@ {#Item x xs'} (do m [y' (f x y)] - (monad\mix m f y' xs'))} + (monad#mix m f y' xs'))} xs))) (macro:' .public (if tokens) @@ -1473,27 +1473,27 @@ Type (All (_ a) ($' List (Tuple Text a)))) -(def:''' .private (plist\value k plist) +(def:''' .private (plist#value k plist) (All (_ a) (-> Text ($' PList a) ($' Maybe a))) ({{#Item [[k' v] plist']} - (if (text\= k k') + (if (text#= k k') {#Some v} - (plist\value k plist')) + (plist#value k plist')) {#End} {#None}} plist)) -(def:''' .private (text\composite x y) +(def:''' .private (text#composite x y) (-> Text Text Text) ("lux text concat" x y)) -(def:''' .private (name\encoded full_name) +(def:''' .private (name#encoded full_name) (-> Name Text) (let' [[module name] full_name] ({"" name - _ ($_ text\composite module "." name)} + _ ($_ text#composite module "." name)} module))) (def:''' .private (global_identifier full_name state) @@ -1515,12 +1515,12 @@ constant) {#None} - {#Left ($_ text\composite "Unknown definition: " (name\encoded full_name))}} - (plist\value name definitions)) + {#Left ($_ text#composite "Unknown definition: " (name#encoded full_name))}} + (plist#value name definitions)) {#None} - {#Left ($_ text\composite "Unknown module: " module " @ " (name\encoded full_name))}} - (plist\value module modules)))) + {#Left ($_ text#composite "Unknown module: " module " @ " (name#encoded full_name))}} + (plist#value module modules)))) (def:''' .private (:List expression) (-> Code Code) @@ -1545,12 +1545,12 @@ [lastO (untemplated lastI)] (in (:List (|#Item| lastO |#End|))))} lastI)] - (monad\mix meta_monad + (monad#mix meta_monad (function' [leftI rightO] ({[_ {#Form {#Item [[_ {#Identifier ["" "~+"]}] {#Item [spliced {#End}]}]}}] (let' [g!in-module (form$ (list (text$ "lux in-module") (text$ ..prelude_module) - (identifier$ [..prelude_module "list\composite"])))] + (identifier$ [..prelude_module "list#composite"])))] (in (form$ (list g!in-module (:List spliced) rightO)))) _ @@ -1560,10 +1560,10 @@ leftI)) lastO inits))} - (list\reversed elems)) + (list#reversed elems)) #0 (do meta_monad - [=elems (monad\each meta_monad untemplated elems)] + [=elems (monad#each meta_monad untemplated elems)] (in (untemplated_list =elems)))} replace?)) @@ -1594,7 +1594,7 @@ [#1 [_ {#Identifier [module name]}]] (do meta_monad [real_name ({"" - (if (text\= "" subst) + (if (text#= "" subst) (in [module name]) (global_identifier [subst name])) @@ -1702,16 +1702,16 @@ (macro:' .public (|> tokens) ({{#Item [init apps]} - (in_meta (list (list\mix ("lux type check" (-> Code Code Code) + (in_meta (list (list#mix ("lux type check" (-> Code Code Code) (function' [app acc] ({[_ {#Variant parts}] - (variant$ (list\composite parts (list acc))) + (variant$ (list#composite parts (list acc))) [_ {#Tuple parts}] - (tuple$ (list\composite parts (list acc))) + (tuple$ (list#composite parts (list acc))) [_ {#Form parts}] - (form$ (list\composite parts (list acc))) + (form$ (list#composite parts (list acc))) _ (` ((~ app) (~ acc)))} @@ -1725,16 +1725,16 @@ (macro:' .public (<| tokens) ({{#Item [init apps]} - (in_meta (list (list\mix ("lux type check" (-> Code Code Code) + (in_meta (list (list#mix ("lux type check" (-> Code Code Code) (function' [app acc] ({[_ {#Variant parts}] - (variant$ (list\composite parts (list acc))) + (variant$ (list#composite parts (list acc))) [_ {#Tuple parts}] - (tuple$ (list\composite parts (list acc))) + (tuple$ (list#composite parts (list acc))) [_ {#Form parts}] - (form$ (list\composite parts (list acc))) + (form$ (list#composite parts (list acc))) _ (` ((~ app) (~ acc)))} @@ -1744,9 +1744,9 @@ _ (failure "Wrong syntax for <|")} - (list\reversed tokens))) + (list#reversed tokens))) -(def:''' .private (function\composite f g) +(def:''' .private (function#composite f g) (All (_ a b c) (-> (-> b c) (-> a b) (-> a c))) (function' [x] (f (g x)))) @@ -1789,13 +1789,13 @@ (..replacement sname env)) [meta {#Form elems}] - [meta {#Form (list\each (realized_template env) elems)}] + [meta {#Form (list#each (realized_template env) elems)}] [meta {#Tuple elems}] - [meta {#Tuple (list\each (realized_template env) elems)}] + [meta {#Tuple (list#each (realized_template env) elems)}] [meta {#Variant elems}] - [meta {#Variant (list\each (realized_template env) elems)}] + [meta {#Variant (list#each (realized_template env) elems)}] _ template} @@ -1804,7 +1804,7 @@ (def:''' .private (every? p xs) (All (_ a) (-> (-> a Bit) ($' List a) Bit)) - (list\mix (function' [_2 _1] (if _1 (p _2) #0)) #1 xs)) + (list#mix (function' [_2 _1] (if _1 (p _2) #0)) #1 xs)) (def:''' .private (high_bits value) (-> ($' I64 Any) I64) @@ -1830,29 +1830,29 @@ (low_bits sample)) #0)))) -(def:''' .private (list\conjoint xs) +(def:''' .private (list#conjoint xs) (All (_ a) (-> ($' List ($' List a)) ($' List a))) - (list\mix list\composite {#End} (list\reversed xs))) + (list#mix list#composite {#End} (list#reversed xs))) (macro:' .public (template tokens) ({{#Item [[_ {#Tuple bindings}] {#Item [[_ {#Tuple templates}] data]}]} ({[{#Some bindings'} {#Some data'}] (let' [apply ("lux type check" (-> Replacement_Environment ($' List Code)) - (function' [env] (list\each (realized_template env) templates))) - num_bindings (list\size bindings')] + (function' [env] (list#each (realized_template env) templates))) + num_bindings (list#size bindings')] (if (every? (function' [size] ("lux i64 =" num_bindings size)) - (list\each list\size data')) + (list#each list#size data')) (|> data' - (list\each (function\composite apply (replacement_environment bindings'))) - list\conjoint + (list#each (function#composite apply (replacement_environment bindings'))) + list#conjoint in_meta) (failure "Irregular arguments tuples for template."))) _ (failure "Wrong syntax for template")} - [(monad\each maybe_monad identifier_short bindings) - (monad\each maybe_monad tuple_list data)]) + [(monad#each maybe_monad identifier_short bindings) + (monad#each maybe_monad tuple_list data)]) _ (failure "Wrong syntax for template")} @@ -1889,7 +1889,7 @@ left right)) -(def:''' .private (bit\encoded x) +(def:''' .private (bit#encoded x) (-> Bit Text) (if x "#1" "#0")) @@ -1902,7 +1902,7 @@ _ ("lux io error" "@digit::format Undefined behavior.")} digit)) -(def:''' .private (nat\encoded value) +(def:''' .private (nat#encoded value) (-> Nat Text) ({0 "0" @@ -1913,18 +1913,18 @@ (if ("lux i64 =" 0 input) output (recur (n// 10 input) - (text\composite (|> input (n/% 10) digit::format) + (text#composite (|> input (n/% 10) digit::format) output)))))] (loop value ""))} value)) -(def:''' .private (int\abs value) +(def:''' .private (int#abs value) (-> Int Int) (if ("lux i64 <" +0 value) ("lux i64 *" -1 value) value)) -(def:''' .private (int\encoded value) +(def:''' .private (int#encoded value) (-> Int Text) (if ("lux i64 =" +0 value) "+0" @@ -1934,14 +1934,14 @@ (("lux type check" (-> Int Text Text) (function' recur [input output] (if ("lux i64 =" +0 input) - (text\composite sign output) + (text#composite sign output) (recur ("lux i64 /" +10 input) - (text\composite (|> input ("lux i64 %" +10) ("lux type as" Nat) digit::format) + (text#composite (|> input ("lux i64 %" +10) ("lux type as" Nat) digit::format) output))))) - (|> value ("lux i64 /" +10) int\abs) - (|> value ("lux i64 %" +10) int\abs ("lux type as" Nat) digit::format))))) + (|> value ("lux i64 /" +10) int#abs) + (|> value ("lux i64 %" +10) int#abs ("lux type as" Nat) digit::format))))) -(def:''' .private (frac\encoded x) +(def:''' .private (frac#encoded x) (-> Frac Text) ("lux f64 encode" x)) @@ -1967,9 +1967,9 @@ Text Text Text ($' Maybe Macro)) (do maybe_monad - [$module (plist\value module modules) + [$module (plist#value module modules) gdef (let' [[#module_hash _ #module_aliases _ #definitions bindings #imports _ #module_state _] ("lux type check" Module $module)] - (plist\value name bindings))] + (plist#value name bindings))] ({{#Alias [r_module r_name]} (macro'' modules current_module r_module r_name) @@ -1977,7 +1977,7 @@ (if (macro_type? def_type) (if exported? {#Some ("lux type as" Macro def_value)} - (if (text\= module current_module) + (if (text#= module current_module) {#Some ("lux type as" Macro def_value)} {#None})) {#None}) @@ -2026,7 +2026,7 @@ {#None} #0} output)))) -(def:''' .private (list\interposed sep xs) +(def:''' .private (list#interposed sep xs) (All (_ a) (-> a ($' List a) ($' List a))) ({{#End} @@ -2036,7 +2036,7 @@ xs {#Item [x xs']} - (list& x sep (list\interposed sep xs'))} + (list& x sep (list#interposed sep xs'))} xs)) (def:''' .private (single_expansion token) @@ -2065,8 +2065,8 @@ ({{#Some macro} (do meta_monad [top_level_expansion (("lux type as" Macro' macro) args) - recursive_expansion (monad\each meta_monad expansion top_level_expansion)] - (in (list\conjoint recursive_expansion))) + recursive_expansion (monad#each meta_monad expansion top_level_expansion)] + (in (list#conjoint recursive_expansion))) {#None} (in (list token))} @@ -2085,92 +2085,92 @@ ({{#Some macro} (do meta_monad [expansion (("lux type as" Macro' macro) args) - expansion' (monad\each meta_monad full_expansion expansion)] - (in (list\conjoint expansion'))) + expansion' (monad#each meta_monad full_expansion expansion)] + (in (list#conjoint expansion'))) {#None} (do meta_monad - [args' (monad\each meta_monad full_expansion args)] - (in (list (form$ {#Item (identifier$ name) (list\conjoint args')}))))} + [args' (monad#each meta_monad full_expansion args)] + (in (list (form$ {#Item (identifier$ name) (list#conjoint args')}))))} ?macro)) [_ {#Form members}] (do meta_monad - [members' (monad\each meta_monad full_expansion members)] - (in (list (form$ (list\conjoint members'))))) + [members' (monad#each meta_monad full_expansion members)] + (in (list (form$ (list#conjoint members'))))) [_ {#Variant members}] (do meta_monad - [members' (monad\each meta_monad full_expansion members)] - (in (list (variant$ (list\conjoint members'))))) + [members' (monad#each meta_monad full_expansion members)] + (in (list (variant$ (list#conjoint members'))))) [_ {#Tuple members}] (do meta_monad - [members' (monad\each meta_monad full_expansion members)] - (in (list (tuple$ (list\conjoint members'))))) + [members' (monad#each meta_monad full_expansion members)] + (in (list (tuple$ (list#conjoint members'))))) _ (in_meta (list syntax))} syntax)) -(def:''' .private (text\encoded original) +(def:''' .private (text#encoded original) (-> Text Text) - ($_ text\composite ..double_quote original ..double_quote)) + ($_ text#composite ..double_quote original ..double_quote)) -(def:''' .private (code\encoded code) +(def:''' .private (code#encoded code) (-> Code Text) ({[_ {#Bit value}] - (bit\encoded value) + (bit#encoded value) [_ {#Nat value}] - (nat\encoded value) + (nat#encoded value) [_ {#Int value}] - (int\encoded value) + (int#encoded value) [_ {#Rev value}] - ("lux io error" "@code\encoded Undefined behavior.") + ("lux io error" "@code#encoded Undefined behavior.") [_ {#Frac value}] - (frac\encoded value) + (frac#encoded value) [_ {#Text value}] - (text\encoded value) + (text#encoded value) [_ {#Identifier [module name]}] - (if (text\= "" module) + (if (text#= "" module) name - ($_ text\composite module "." name)) + ($_ text#composite module "." name)) [_ {#Form xs}] - ($_ text\composite "(" (|> xs - (list\each code\encoded) - (list\interposed " ") - list\reversed - (list\mix text\composite "")) ")") + ($_ text#composite "(" (|> xs + (list#each code#encoded) + (list#interposed " ") + list#reversed + (list#mix text#composite "")) ")") [_ {#Tuple xs}] - ($_ text\composite "[" (|> xs - (list\each code\encoded) - (list\interposed " ") - list\reversed - (list\mix text\composite "")) "]") + ($_ text#composite "[" (|> xs + (list#each code#encoded) + (list#interposed " ") + list#reversed + (list#mix text#composite "")) "]") [_ {#Variant xs}] - ($_ text\composite "{" (|> xs - (list\each code\encoded) - (list\interposed " ") - list\reversed - (list\mix text\composite "")) "}")} + ($_ text#composite "{" (|> xs + (list#each code#encoded) + (list#interposed " ") + list#reversed + (list#mix text#composite "")) "}")} code)) (def:''' .private (normal_type type) (-> Code Code) ({[_ {#Variant {#Item [_ {#Identifier identifier}] parts}}] - (` {(~ (identifier$ identifier)) (~+ (list\each normal_type parts))}) + (` {(~ (identifier$ identifier)) (~+ (list#each normal_type parts))}) [_ {#Tuple members}] - (` (Tuple (~+ (list\each normal_type members)))) + (` (Tuple (~+ (list#each normal_type members)))) [_ {#Form {#Item [_ {#Text "lux in-module"}] {#Item [_ {#Text module}] @@ -2200,10 +2200,10 @@ {#End}}}}}}] [_ {#Form {#Item type_fn args}}] - (list\mix ("lux type check" (-> Code Code Code) + (list#mix ("lux type check" (-> Code Code Code) (function' [arg type_fn] (` {.#Apply (~ arg) (~ type_fn)}))) (normal_type type_fn) - (list\each normal_type args)) + (list#each normal_type args)) _ type} @@ -2262,8 +2262,8 @@ (let' [[x y] xy] ))] - [product\left a x] - [product\right b y]) + [product#left a x] + [product#right b y]) (def:''' .private (identifier prefix state) (-> Text ($' Meta Code)) @@ -2277,13 +2277,13 @@ #seed ("lux i64 +" 1 seed) #expected expected #location location #extensions extensions #scope_type_vars scope_type_vars #eval _eval] - (local_identifier$ ($_ text\composite "__gensym__" prefix (nat\encoded seed)))}} + (local_identifier$ ($_ text#composite "__gensym__" prefix (nat#encoded seed)))}} state)) (macro:' .public (exec tokens) ({{#Item value actions} (let' [dummy (local_identifier$ "")] - (in_meta (list (list\mix ("lux type check" (-> Code Code Code) + (in_meta (list (list#mix ("lux type check" (-> Code Code Code) (function' [pre post] (` ({(~ dummy) (~ post)} (~ pre))))) value @@ -2291,7 +2291,7 @@ _ (failure "Wrong syntax for exec")} - (list\reversed tokens))) + (list#reversed tokens))) (macro:' .private (def:' tokens) (let' [parts (: (Maybe [Code Code (List Code) (Maybe Code) Code]) @@ -2357,11 +2357,11 @@ (do meta_monad [] (in (list))) _ - (failure ($_ text\composite "'lux.case' expects an even number of tokens: " (|> branches - (list\each code\encoded) - (list\interposed " ") - list\reversed - (list\mix text\composite ""))))} + (failure ($_ text#composite "'lux.case' expects an even number of tokens: " (|> branches + (list#each code#encoded) + (list#interposed " ") + list#reversed + (list#mix text#composite ""))))} branches)) (macro:' .public (case tokens) @@ -2398,9 +2398,9 @@ _ (let' [pairs (|> patterns - (list\each (function' [pattern] (list pattern body))) - (list\conjoint))] - (in_meta (list\composite pairs branches)))) + (list#each (function' [pattern] (list pattern body))) + (list#conjoint))] + (in_meta (list#composite pairs branches)))) _ (failure "Wrong syntax for ^or"))) @@ -2416,9 +2416,9 @@ (macro:' .public (let tokens) (case tokens (^ (list [_ {#Tuple bindings}] body)) - (if (multiple? 2 (list\size bindings)) - (|> bindings pairs list\reversed - (list\mix (: (-> [Code Code] Code Code) + (if (multiple? 2 (list#size bindings)) + (|> bindings pairs list#reversed + (list#mix (: (-> [Code Code] Code Code) (function' [lr body'] (let' [[l r] lr] (if (identifier? l) @@ -2450,7 +2450,7 @@ (` ([(~ g!name) (~ g!blank)] (.case (~ g!blank) (~ arg) (~ body'))))))))] (in_meta (list (nest (..local_identifier$ g!name) head - (list\mix (nest g!blank) body (list\reversed tail)))))) + (list#mix (nest g!blank) body (list#reversed tail)))))) {#None} (failure "Wrong syntax for function"))) @@ -2622,7 +2622,7 @@ _ (` ("lux macro" - (function ((~ name) (~+ (list\each local_identifier$ args))) (~ body)))))] + (function ((~ name) (~+ (list#each local_identifier$ args))) (~ body)))))] (in_meta (list (` ("lux def" (~ name) (~ body) (~ export_policy)))))) @@ -2630,7 +2630,7 @@ {#None} (failure "Wrong syntax for macro:"))) -(def: (list\one f xs) +(def: (list#one f xs) (All (_ a b) (-> (-> a (Maybe b)) (List a) (Maybe b))) (case xs @@ -2640,16 +2640,16 @@ {#Item x xs'} (case (f x) {#None} - (list\one f xs') + (list#one f xs') {#Some y} {#Some y}))) (template [
] [(macro: .public ( tokens) - (case (list\reversed tokens) + (case (list#reversed tokens) (^ (list& last init)) - (in_meta (list (list\mix (: (-> Code Code Code) + (in_meta (list (list#mix (: (-> Code Code Code) (function (_ pre post) (` ))) last init))) @@ -2668,7 +2668,7 @@ (-> Text Nothing) ("lux io error" message)) -(macro: (maybe\else tokens state) +(macro: (maybe#else tokens state) (case tokens (^ (list else maybe)) (let [g!temp (: Code [dummy_location {#Identifier ["" ""]}]) @@ -2681,9 +2681,9 @@ {#Right [state (list code)]}) _ - {#Left "Wrong syntax for maybe\else"})) + {#Left "Wrong syntax for maybe#else"})) -(def: (text\all_split_by splitter input) +(def: (text#all_split_by splitter input) (-> Text Text (List Text)) (case (..index splitter input) {#None} @@ -2691,7 +2691,7 @@ {#Some idx} (list& ("lux text clip" 0 idx input) - (text\all_split_by splitter + (text#all_split_by splitter (let [after_offset ("lux i64 +" 1 idx) after_length ("lux i64 -" after_offset @@ -2835,29 +2835,29 @@ #scopes scopes #type_context types #host host #seed seed #expected expected #location location #extensions extensions #scope_type_vars scope_type_vars #eval _eval] state] - (case (plist\value name modules) + (case (plist#value name modules) {#Some module} {#Right state module} _ - {#Left ($_ text\composite "Unknown module: " name)})))) + {#Left ($_ text#composite "Unknown module: " name)})))) (def: (type_slot [module name]) (-> Name (Meta [Nat (List Name) Bit Type])) (do meta_monad [=module (..module module) .let [[#module_hash _ #module_aliases _ #definitions definitions #imports _ #module_state _] =module]] - (case (plist\value name definitions) + (case (plist#value name definitions) {#Some {#Slot [exported type group index]}} (in_meta [index - (list\each (function (_ slot) + (list#each (function (_ slot) [module slot]) group) exported type]) _ - (failure (text\composite "Unknown slot: " (name\encoded [module name])))))) + (failure (text#composite "Unknown slot: " (name#encoded [module name])))))) (def: (record_slots type) (-> Type (Meta (Maybe [(List Name) (List Type)]))) @@ -2875,11 +2875,11 @@ (do meta_monad [=module (..module module) .let [[#module_hash _ #module_aliases _ #definitions definitions #imports _ #module_state _] =module]] - (case (plist\value name definitions) + (case (plist#value name definitions) {#Some {#Type [exported? {#Named _ _type} {#Right slots}]}} (case (interface_methods _type) {#Some members} - (in_meta {#Some [(list\each (function (_ slot) [module slot]) + (in_meta {#Some [(list#each (function (_ slot) [module slot]) {#Item slots}) members]}) @@ -2906,7 +2906,7 @@ {#None} {#Left "Not expecting any type."})))) -(def: (type\encoded type) +(def: (type#encoded type) (-> Type Text) (case type {#Primitive name params} @@ -2915,46 +2915,46 @@ name _ - ($_ text\composite "(" name " " (|> params (list\each type\encoded) (list\interposed " ") list\reversed (list\mix text\composite "")) ")")) + ($_ text#composite "(" name " " (|> params (list#each type#encoded) (list#interposed " ") list#reversed (list#mix text#composite "")) ")")) {#Sum _} - ($_ text\composite "{" (|> (flat_variant type) (list\each type\encoded) (list\interposed " ") list\reversed (list\mix text\composite "")) "}") + ($_ text#composite "{" (|> (flat_variant type) (list#each type#encoded) (list#interposed " ") list#reversed (list#mix text#composite "")) "}") {#Product _} - ($_ text\composite "[" (|> (flat_tuple type) (list\each type\encoded) (list\interposed " ") list\reversed (list\mix text\composite "")) "]") + ($_ text#composite "[" (|> (flat_tuple type) (list#each type#encoded) (list#interposed " ") list#reversed (list#mix text#composite "")) "]") {#Function _} - ($_ text\composite "(-> " (|> (flat_lambda type) (list\each type\encoded) (list\interposed " ") list\reversed (list\mix text\composite "")) ")") + ($_ text#composite "(-> " (|> (flat_lambda type) (list#each type#encoded) (list#interposed " ") list#reversed (list#mix text#composite "")) ")") {#Parameter id} - (nat\encoded id) + (nat#encoded id) {#Var id} - ($_ text\composite "⌈v:" (nat\encoded id) "⌋") + ($_ text#composite "⌈v:" (nat#encoded id) "⌋") {#Ex id} - ($_ text\composite "⟨e:" (nat\encoded id) "⟩") + ($_ text#composite "⟨e:" (nat#encoded id) "⟩") {#UnivQ env body} - ($_ text\composite "(All " (type\encoded body) ")") + ($_ text#composite "(All " (type#encoded body) ")") {#ExQ env body} - ($_ text\composite "(Ex " (type\encoded body) ")") + ($_ text#composite "(Ex " (type#encoded body) ")") {#Apply _} (let [[func args] (flat_application type)] - ($_ text\composite - "(" (type\encoded func) " " - (|> args (list\each type\encoded) (list\interposed " ") list\reversed (list\mix text\composite "")) + ($_ text#composite + "(" (type#encoded func) " " + (|> args (list#each type#encoded) (list#interposed " ") list#reversed (list#mix text#composite "")) ")")) {#Named name _} - (name\encoded name) + (name#encoded name) )) (macro: .public (implementation tokens) (do meta_monad - [tokens' (monad\each meta_monad expansion tokens) + [tokens' (monad#each meta_monad expansion tokens) struct_type ..expected_type tags+type (record_slots struct_type) tags (: (Meta (List Name)) @@ -2963,40 +2963,40 @@ (in_meta tags) _ - (failure ($_ text\composite + (failure ($_ text#composite "No tags available for type: " - (type\encoded struct_type))))) + (type#encoded struct_type))))) .let [tag_mappings (: (List [Text Code]) - (list\each (function (_ tag) - [(product\right tag) + (list#each (function (_ tag) + [(product#right tag) (identifier$ tag)]) tags))] - members (monad\each meta_monad + members (monad#each meta_monad (: (-> Code (Meta (List Code))) (function (_ token) (case token (^ [_ {#Form (list [_ {#Text "lux def"}] [_ {#Identifier ["" slot_name]}] value export_policy)}]) - (case (plist\value slot_name tag_mappings) + (case (plist#value slot_name tag_mappings) {#Some tag} (in (list tag value)) _ - (failure (text\composite "Unknown implementation member: " slot_name))) + (failure (text#composite "Unknown implementation member: " slot_name))) _ (failure "Invalid implementation member.")))) - (list\conjoint tokens'))] - (in (list (tuple$ (list\conjoint members)))))) + (list#conjoint tokens'))] + (in (list (tuple$ (list#conjoint members)))))) -(def: (text\interposed separator parts) +(def: (text#interposed separator parts) (-> Text (List Text) Text) (case parts {#End} "" {#Item head tail} - (list\mix (function (_ right left) - ($_ text\composite left separator right)) + (list#mix (function (_ right left) + ($_ text#composite left separator right)) head tail))) @@ -3036,7 +3036,7 @@ {#None} (failure "Wrong syntax for implementation:"))) -(def: (function\identity value) +(def: (function#identity value) (All (_ a) (-> a a)) value) @@ -3076,9 +3076,9 @@ (macro: .public (Variant tokens) (case (everyP caseP tokens) {#Some cases} - (in_meta (list (` (..Union (~+ (list\each product\right cases)))) - (variant$ (list\each (function (_ case) - (text$ (product\left case))) + (in_meta (list (` (..Union (~+ (list#each product#right cases)))) + (variant$ (list#each (function (_ case) + (text$ (product#left case))) cases)))) {#None} @@ -3098,9 +3098,9 @@ (^ (list [_ {#Tuple record}])) (case (everyP slotP record) {#Some slots} - (in_meta (list (` (..Tuple (~+ (list\each product\right slots)))) - (tuple$ (list\each (function (_ slot) - (text$ (product\left slot))) + (in_meta (list (` (..Tuple (~+ (list#each product#right slots)))) + (tuple$ (list#each (function (_ slot) + (text$ (product#left slot))) slots)))) {#None} @@ -3174,7 +3174,7 @@ {#Some type} _ - {#Some (` (.All ((~ type_name) (~+ (list\each local_identifier$ args))) + {#Some (` (.All ((~ type_name) (~+ (list#each local_identifier$ args))) (~ type)))}))]] (case type' {#Some type''} @@ -3187,10 +3187,10 @@ (~ typeC) (~ (case labels {#Left tags} - (` {(~+ (list\each text$ tags))}) + (` {(~+ (list#each text$ tags))}) {#Right slots} - (` [(~+ (list\each text$ slots))]))) + (` [(~+ (list#each text$ slots))]))) (~ export_policy))) _ @@ -3240,7 +3240,7 @@ (def: (referral_references defs) (-> (List Code) (Meta (List Text))) - (monad\each meta_monad + (monad#each meta_monad (: (-> Code (Meta Text)) (function (_ def) (case def @@ -3285,7 +3285,7 @@ (^ (list& [_ {#Form (list& [_ {#Text prefix}] structs)}] parts')) (do meta_monad - [structs' (monad\each meta_monad + [structs' (monad#each meta_monad (function (_ struct) (case struct [_ {#Identifier ["" struct_name]}] @@ -3302,24 +3302,24 @@ _ (in_meta [{#End} parts]))) -(def: (text\split_at' at x) +(def: (text#split_at' at x) (-> Nat Text [Text Text]) [("lux text clip" 0 at x) ("lux text clip" at (|> x "lux text size" ("lux i64 -" at)) x)]) -(def: (text\split_by token sample) +(def: (text#split_by token sample) (-> Text Text (Maybe [Text Text])) (do ..maybe_monad [index (..index token sample) - .let [[pre post'] (text\split_at' index sample) - [_ post] (text\split_at' ("lux text size" token) post')]] + .let [[pre post'] (text#split_at' index sample) + [_ post] (text#split_at' ("lux text size" token) post')]] (in [pre post]))) (def: (replaced pattern replacement template) (-> Text Text Text Text) ((: (-> Text Text Text) (function (recur left right) - (case (..text\split_by pattern right) + (case (..text#split_by pattern right) {#Some [pre post]} (recur ($_ "lux text concat" left pre replacement) post) @@ -3329,12 +3329,12 @@ (def: (alias_stand_in index) (-> Nat Text) - ($_ "lux text concat" "[" (nat\encoded index) "]")) + ($_ "lux text concat" "[" (nat#encoded index) "]")) (def: (module_alias context aliased) (-> (List Text) Text Text) - (product\right - (list\mix (function (_ replacement [index aliased]) + (product#right + (list#mix (function (_ replacement [index aliased]) [("lux i64 +" 1 index) (replaced (alias_stand_in index) replacement aliased)]) [0 aliased] @@ -3348,8 +3348,8 @@ (def: (normal_parallel_path' hierarchy root) (-> Text Text Text) - (case [(text\split_by ..module_separator hierarchy) - (text\split_by ..parallel_hierarchy_sigil root)] + (case [(text#split_by ..module_separator hierarchy) + (text#split_by ..parallel_hierarchy_sigil root)] [{#Some [_ hierarchy']} {#Some ["" root']}] (normal_parallel_path' hierarchy' root') @@ -3357,11 +3357,11 @@ _ (case root "" hierarchy - _ ($_ text\composite root ..module_separator hierarchy)))) + _ ($_ text#composite root ..module_separator hierarchy)))) (def: (normal_parallel_path hierarchy root) (-> Text Text (Maybe Text)) - (case (text\split_by ..parallel_hierarchy_sigil root) + (case (text#split_by ..parallel_hierarchy_sigil root) {#Some ["" root']} {#Some (normal_parallel_path' hierarchy root')} @@ -3379,14 +3379,14 @@ (relative_ups ("lux i64 +" 1 relatives) input) relatives))) -(def: (list\after amount list) +(def: (list#after amount list) (All (_ a) (-> Nat (List a) (List a))) (case [amount list] (^or [0 _] [_ {#End}]) list [_ {#Item _ tail}] - (list\after ("lux i64 -" 1 amount) tail))) + (list#after ("lux i64 -" 1 amount) tail))) (def: (absolute_module_name nested? relative_root module) (-> Bit Text Text (Meta Text)) @@ -3397,28 +3397,28 @@ module)) relatives - (let [parts (text\all_split_by ..module_separator relative_root) + (let [parts (text#all_split_by ..module_separator relative_root) jumps ("lux i64 -" 1 relatives)] - (if (n/< (list\size parts) jumps) + (if (n/< (list#size parts) jumps) (let [prefix (|> parts - list\reversed - (list\after jumps) - list\reversed - (text\interposed ..module_separator)) + list#reversed + (list#after jumps) + list#reversed + (text#interposed ..module_separator)) clean ("lux text clip" relatives (|> module "lux text size" ("lux i64 -" relatives)) module) output (case ("lux text size" clean) 0 prefix - _ ($_ text\composite prefix ..module_separator clean))] + _ ($_ text#composite prefix ..module_separator clean))] (in_meta output)) (failure ($_ "lux text concat" - "Cannot climb the module hierarchy..." ..\n - "Importing module: " module ..\n - " Relative Root: " relative_root ..\n)))))) + "Cannot climb the module hierarchy..." \n + "Importing module: " module \n + " Relative Root: " relative_root \n)))))) (def: (imports_parser nested? relative_root context imports) (-> Bit Text (List Text) (List Code) (Meta (List Importation))) (do meta_monad - [imports' (monad\each meta_monad + [imports' (monad#each meta_monad (: (-> Code (Meta (List Importation))) (function (_ token) (case token @@ -3485,11 +3485,11 @@ _ (do meta_monad [current_module current_module_name] - (failure ($_ text\composite + (failure ($_ text#composite "Wrong syntax for import @ " current_module - ..\n (code\encoded token))))))) + \n (code#encoded token))))))) imports)] - (in (list\conjoint imports')))) + (in (list#conjoint imports')))) (def: (exported_definitions module state) (-> Text (Meta (List Text))) @@ -3499,9 +3499,9 @@ #seed seed #expected expected #location location #extensions extensions #scope_type_vars scope_type_vars #eval _eval] [current_module modules])] - (case (plist\value module modules) + (case (plist#value module modules) {#Some =module} - (let [to_alias (list\each (: (-> [Text Global] + (let [to_alias (list#each (: (-> [Text Global] (List Text)) (function (_ [name definition]) (case definition @@ -3525,25 +3525,25 @@ (list)))) (let [[#module_hash _ #module_aliases _ #definitions definitions #imports _ #module_state _] =module] definitions))] - {#Right state (list\conjoint to_alias)}) + {#Right state (list#conjoint to_alias)}) {#None} - {#Left ($_ text\composite - "Unknown module: " (text\encoded module) ..\n + {#Left ($_ text#composite + "Unknown module: " (text#encoded module) \n "Current module: " (case current_module {#Some current_module} - (text\encoded current_module) + (text#encoded current_module) {#None} - "???") ..\n + "???") \n "Known modules: " (|> modules - (list\each (function (_ [name module]) + (list#each (function (_ [name module]) (text$ name))) tuple$ - code\encoded))}) + code#encoded))}) )) -(def: (list\only p xs) +(def: (list#only p xs) (All (_ a) (-> (-> a Bit) (List a) (List a))) (case xs @@ -3552,14 +3552,14 @@ {#Item x xs'} (if (p x) - {#Item x (list\only p xs')} - (list\only p xs')))) + {#Item x (list#only p xs')} + (list#only p xs')))) (def: (is_member? cases name) (-> (List Text) Text Bit) - (let [output (list\mix (function (_ case prev) + (let [output (list#mix (function (_ case prev) (or prev - (text\= case name))) + (text#= case name))) #0 cases)] output)) @@ -3578,16 +3578,16 @@ #scopes scopes #type_context types #host host #seed seed #expected expected #location location #extensions extensions #scope_type_vars scope_type_vars #eval _eval] - (list\one (: (-> Scope (Maybe Type)) + (list#one (: (-> Scope (Maybe Type)) (function (_ env) (case env [#name _ #inner _ #locals [#counter _ #mappings locals] #captured [#counter _ #mappings closure]] - (on_either (list\one (: (-> [Text [Type Any]] (Maybe Type)) + (on_either (list#one (: (-> [Text [Type Any]] (Maybe Type)) (function (_ [bname [type _]]) - (if (text\= name bname) + (if (text#= name bname) {#Some type} {#None})))) (: (List [Text [Type Any]]) locals) @@ -3601,12 +3601,12 @@ #scopes scopes #type_context types #host host #seed seed #expected expected #location location #extensions extensions #scope_type_vars scope_type_vars #eval _eval] state] - (case (plist\value v_module modules) + (case (plist#value v_module modules) {#None} {#None} {#Some [#definitions definitions #module_hash _ #module_aliases _ #imports _ #module_state _]} - (case (plist\value v_name definitions) + (case (plist#value v_name definitions) {#None} {#None} @@ -3634,14 +3634,14 @@ #scopes scopes #type_context types #host host #seed seed #expected expected #location location #extensions extensions #scope_type_vars scope_type_vars #eval _eval] state] - (case (plist\value v_module modules) + (case (plist#value v_module modules) {#None} - {#Left (text\composite "Unknown definition: " (name\encoded name))} + {#Left (text#composite "Unknown definition: " (name#encoded name))} {#Some [#definitions definitions #module_hash _ #module_aliases _ #imports _ #module_state _]} - (case (plist\value v_name definitions) + (case (plist#value v_name definitions) {#None} - {#Left (text\composite "Unknown definition: " (name\encoded name))} + {#Left (text#composite "Unknown definition: " (name#encoded name))} {#Some definition} (case definition @@ -3655,10 +3655,10 @@ {#Right [state [..Type type]]} {#Label _} - {#Left (text\composite "Unknown definition: " (name\encoded name))} + {#Left (text#composite "Unknown definition: " (name#encoded name))} {#Slot _} - {#Left (text\composite "Unknown definition: " (name\encoded name))}))))) + {#Left (text#composite "Unknown definition: " (name#encoded name))}))))) (def: (type_variable idx bindings) (-> Nat (List [Nat (Maybe Type)]) (Maybe Type)) @@ -3677,7 +3677,7 @@ [.let [[module name] full_name] current_module current_module_name] (function (_ compiler) - (let [temp (if (text\= "" module) + (let [temp (if (text#= "" module) (case (in_env name compiler) {#Some struct_type} {#Right [compiler struct_type]} @@ -3688,13 +3688,13 @@ {#Right [compiler struct_type]} _ - {#Left ($_ text\composite "Unknown var: " (name\encoded full_name))})) + {#Left ($_ text#composite "Unknown var: " (name#encoded full_name))})) (case (definition_type full_name compiler) {#Some struct_type} {#Right [compiler struct_type]} _ - {#Left ($_ text\composite "Unknown var: " (name\encoded full_name))}))] + {#Left ($_ text#composite "Unknown var: " (name#encoded full_name))}))] (case temp {#Right [compiler {#Var type_id}]} (let [[#info _ #source _ #current_module _ #modules _ @@ -3741,24 +3741,24 @@ struct_evidence (record_slots init_type)] (case struct_evidence {#None} - (failure (text\composite "Can only 'open' structs: " (type\encoded init_type))) + (failure (text#composite "Can only 'open' structs: " (type#encoded init_type))) {#Some tags&members} (do meta_monad [full_body ((: (-> Name [(List Name) (List Type)] Code (Meta Code)) (function (recur source [tags members] target) - (let [locals (list\each (function (_ [t_module t_name]) + (let [locals (list#each (function (_ [t_module t_name]) [[t_module t_name] ["" (..module_alias (list t_name) alias)]]) tags) pattern (|> locals - (list\each (function (_ [slot binding]) + (list#each (function (_ [slot binding]) (list (identifier$ slot) (identifier$ binding)))) - list\conjoint + list#conjoint tuple$)] (do meta_monad - [enhanced_target (monad\mix meta_monad + [enhanced_target (monad#mix meta_monad (function (_ [[_ m_local] m_type] enhanced_target) (do meta_monad [m_implementation (record_slots m_type)] @@ -3780,11 +3780,11 @@ (failure "Wrong syntax for ^open"))) (macro: .public (cond tokens) - (if ("lux i64 =" 0 (n/% 2 (list\size tokens))) + (if ("lux i64 =" 0 (n/% 2 (list#size tokens))) (failure "cond requires an uneven number of arguments.") - (case (list\reversed tokens) + (case (list#reversed tokens) (^ (list& else branches')) - (in_meta (list (list\mix (: (-> [Code Code] Code Code) + (in_meta (list (list#mix (: (-> [Code Code] Code Code) (function (_ branch else) (let [[right left] branch] (` (if (~ left) (~ right) (~ else)))))) @@ -3821,13 +3821,13 @@ (case (interface_methods type) {#Some members} (let [pattern (|> (zipped/2 tags (enumeration members)) - (list\each (: (-> [Name [Nat Type]] (List Code)) + (list#each (: (-> [Name [Nat Type]] (List Code)) (function (_ [[r_module r_name] [r_idx r_type]]) (list (identifier$ [r_module r_name]) (if ("lux i64 =" idx r_idx) g!output g!_))))) - list\conjoint + list#conjoint tuple$)] (in_meta (list (` ({(~ pattern) (~ g!output)} (~ record)))))) @@ -3835,7 +3835,7 @@ (failure "value@ can only use records."))) (^ (list [_ {#Tuple slots}] record)) - (in_meta (list (list\mix (: (-> Code Code Code) + (in_meta (list (list#mix (: (-> Code Code Code) (function (_ slot inner) (` (..value@ (~ slot) (~ inner))))) record @@ -3858,7 +3858,7 @@ .let [g!output (local_identifier$ short) pattern (|> tags enumeration - (list\each (function (_ [tag_idx tag]) + (list#each (function (_ [tag_idx tag]) (if ("lux i64 =" my_tag_index tag_idx) g!output g!_))) @@ -3867,12 +3867,12 @@ (case output {#Some [tags' members']} (do meta_monad - [decls' (monad\each meta_monad + [decls' (monad#each meta_monad (: (-> [Nat Name Type] (Meta (List Code))) (function (_ [sub_tag_index sname stype]) (open_declaration alias tags' sub_tag_index sname source+ stype))) (enumeration (zipped/2 tags' members')))] - (in_meta (list\conjoint decls'))) + (in_meta (list#conjoint decls'))) _ (in_meta (list (` ("lux def" (~ (local_identifier$ (..module_alias (list short) alias))) @@ -3891,14 +3891,14 @@ (case output {#Some [tags members]} (do meta_monad - [decls' (monad\each meta_monad (: (-> [Nat Name Type] (Meta (List Code))) + [decls' (monad#each meta_monad (: (-> [Nat Name Type] (Meta (List Code))) (function (_ [tag_index sname stype]) (open_declaration alias tags tag_index sname source stype))) (enumeration (zipped/2 tags members)))] - (in_meta (list\conjoint decls'))) + (in_meta (list#conjoint decls'))) _ - (failure (text\composite "Can only 'open:' structs: " (type\encoded struct_type))))) + (failure (text#composite "Can only 'open:' structs: " (type#encoded struct_type))))) _ (do meta_monad @@ -3942,11 +3942,11 @@ #refer_open openings]) _ - (failure ($_ text\composite "Wrong syntax for refer @ " current_module - ..\n (|> options - (list\each code\encoded) - (list\interposed " ") - (list\mix text\composite ""))))))) + (failure ($_ text#composite "Wrong syntax for refer @ " current_module + \n (|> options + (list#each code#encoded) + (list#interposed " ") + (list#mix text#composite ""))))))) (def: (referral_definitions module_name [r_defs r_opens]) (-> Text Refer (Meta (List Code))) @@ -3954,12 +3954,12 @@ [current_module current_module_name .let [test_referrals (: (-> Text (List Text) (List Text) (Meta (List Any))) (function (_ module_name all_defs referred_defs) - (monad\each meta_monad + (monad#each meta_monad (: (-> Text (Meta Any)) (function (_ _def) (if (is_member? all_defs _def) (in_meta []) - (failure ($_ text\composite _def " is not defined in module " module_name " @ " current_module))))) + (failure ($_ text#composite _def " is not defined in module " module_name " @ " current_module))))) referred_defs)))] defs' (case r_defs {#All} @@ -3975,25 +3975,25 @@ (do meta_monad [*defs (exported_definitions module_name) _ (test_referrals module_name *defs _defs)] - (in (..list\only (|>> (is_member? _defs) not) *defs))) + (in (..list#only (|>> (is_member? _defs) not) *defs))) {#Ignore} (in (list)) {#Nothing} (in (list))) - .let [defs (list\each (: (-> Text Code) + .let [defs (list#each (: (-> Text Code) (function (_ def) (` ("lux def alias" (~ (local_identifier$ def)) (~ (identifier$ [module_name def])))))) defs') openings (|> r_opens - (list\each (: (-> Openings (List Code)) + (list#each (: (-> Openings (List Code)) (function (_ [alias structs]) - (list\each (function (_ name) + (list#each (function (_ name) (` (open: (~ (text$ alias)) (~ (identifier$ [module_name name]))))) structs)))) - list\conjoint)]] - (in (list\composite defs openings)))) + list#conjoint)]] + (in (list#composite defs openings)))) (macro: (refer tokens) (case tokens @@ -4007,26 +4007,26 @@ (def: (refer_code module_name module_alias' [r_defs r_opens]) (-> Text (Maybe Text) Refer Code) - (let [module_alias (..maybe\else module_name module_alias') + (let [module_alias (..maybe#else module_name module_alias') localizations (: (List Code) (case r_defs {#All} (list (' "*")) {#Only defs} - (list (variant$ (list (' "+") (tuple$ (list\each local_identifier$ defs))))) + (list (variant$ (list (' "+") (tuple$ (list#each local_identifier$ defs))))) {#Exclude defs} - (list (variant$ (list (' "-") (tuple$ (list\each local_identifier$ defs))))) + (list (variant$ (list (' "-") (tuple$ (list#each local_identifier$ defs))))) {#Ignore} (list) {#Nothing} (list))) - openings (list\each (function (_ [alias structs]) + openings (list#each (function (_ [alias structs]) (form$ (list& (text$ (..module_alias (list (alias_stand_in 0) module_alias) alias)) - (list\each local_identifier$ structs)))) + (list#each local_identifier$ structs)))) r_opens)] (` ((~! ..refer) (~ (text$ module_name)) (~+ localizations) @@ -4037,27 +4037,27 @@ [current_module current_module_name imports (imports_parser #0 current_module {#End} _imports) .let [=imports (|> imports - (list\each (: (-> Importation Code) + (list#each (: (-> Importation Code) (function (_ [module_name m_alias =refer]) - (` [(~ (text$ module_name)) (~ (text$ (..maybe\else "" m_alias)))])))) + (` [(~ (text$ module_name)) (~ (text$ (..maybe#else "" m_alias)))])))) tuple$) - =refers (list\each (: (-> Importation Code) + =refers (list#each (: (-> Importation Code) (function (_ [module_name m_alias =refer]) (refer_code module_name m_alias =refer))) imports) =module (` ("lux def module" (~ =imports)))]] (in {#Item =module =refers}))) -(macro: .public (\ tokens) +(macro: .public (# tokens) (case tokens (^ (list struct [_ {#Identifier member}])) (in_meta (list (` (let [(^open (~ (text$ (alias_stand_in 0)))) (~ struct)] (~ (identifier$ member)))))) (^ (list& struct member args)) - (in_meta (list (` ((..\ (~ struct) (~ member)) (~+ args))))) + (in_meta (list (` ((..# (~ struct) (~ member)) (~+ args))))) _ - (failure "Wrong syntax for \"))) + (failure "Wrong syntax for #"))) (macro: .public (with@ tokens) (case tokens @@ -4069,7 +4069,7 @@ (case (interface_methods type) {#Some members} (do meta_monad - [pattern' (monad\each meta_monad + [pattern' (monad#each meta_monad (: (-> [Name [Nat Type]] (Meta [Name Nat Code])) (function (_ [r_slot_name [r_idx r_type]]) (do meta_monad @@ -4077,20 +4077,20 @@ (in_meta [r_slot_name r_idx g!slot])))) (zipped/2 tags (enumeration members)))] (let [pattern (|> pattern' - (list\each (: (-> [Name Nat Code] (List Code)) + (list#each (: (-> [Name Nat Code] (List Code)) (function (_ [r_slot_name r_idx r_var]) (list (identifier$ r_slot_name) r_var)))) - list\conjoint + list#conjoint tuple$) output (|> pattern' - (list\each (: (-> [Name Nat Code] (List Code)) + (list#each (: (-> [Name Nat Code] (List Code)) (function (_ [r_slot_name r_idx r_var]) (list (identifier$ r_slot_name) (if ("lux i64 =" idx r_idx) value r_var))))) - list\conjoint + list#conjoint tuple$)] (in_meta (list (` ({(~ pattern) (~ output)} (~ record))))))) @@ -4104,23 +4104,23 @@ _ (do meta_monad - [bindings (monad\each meta_monad + [bindings (monad#each meta_monad (: (-> Code (Meta Code)) (function (_ _) (..identifier "temp"))) slots) .let [pairs (zipped/2 slots bindings) - update_expr (list\mix (: (-> [Code Code] Code Code) + update_expr (list#mix (: (-> [Code Code] Code Code) (function (_ [s b] v) (` (..with@ (~ s) (~ v) (~ b))))) value - (list\reversed pairs)) - [_ accesses'] (list\mix (: (-> [Code Code] [Code (List (List Code))] [Code (List (List Code))]) + (list#reversed pairs)) + [_ accesses'] (list#mix (: (-> [Code Code] [Code (List (List Code))] [Code (List (List Code))]) (function (_ [new_slot new_binding] [old_record accesses']) [(` (value@ (~ new_slot) (~ new_binding))) {#Item (list new_binding old_record) accesses'}])) [record (: (List (List Code)) {#End})] pairs) - accesses (list\conjoint (list\reversed accesses'))]] + accesses (list#conjoint (list#reversed accesses'))]] (in (list (` (let [(~+ accesses)] (~ update_expr))))))) @@ -4152,7 +4152,7 @@ (case (interface_methods type) {#Some members} (do meta_monad - [pattern' (monad\each meta_monad + [pattern' (monad#each meta_monad (: (-> [Name [Nat Type]] (Meta [Name Nat Code])) (function (_ [r_slot_name [r_idx r_type]]) (do meta_monad @@ -4160,20 +4160,20 @@ (in_meta [r_slot_name r_idx g!slot])))) (zipped/2 tags (enumeration members)))] (let [pattern (|> pattern' - (list\each (: (-> [Name Nat Code] (List Code)) + (list#each (: (-> [Name Nat Code] (List Code)) (function (_ [r_slot_name r_idx r_var]) (list (identifier$ r_slot_name) r_var)))) - list\conjoint + list#conjoint tuple$) output (|> pattern' - (list\each (: (-> [Name Nat Code] (List Code)) + (list#each (: (-> [Name Nat Code] (List Code)) (function (_ [r_slot_name r_idx r_var]) (list (identifier$ r_slot_name) (if ("lux i64 =" idx r_idx) (` ((~ fun) (~ r_var))) r_var))))) - list\conjoint + list#conjoint tuple$)] (in_meta (list (` ({(~ pattern) (~ output)} (~ record))))))) @@ -4219,20 +4219,20 @@ branches)) (case (: (Maybe (List Code)) (do maybe_monad - [bindings' (monad\each maybe_monad identifier_short bindings) - data' (monad\each maybe_monad tuple_list data)] - (let [num_bindings (list\size bindings')] + [bindings' (monad#each maybe_monad identifier_short bindings) + data' (monad#each maybe_monad tuple_list data)] + (let [num_bindings (list#size bindings')] (if (every? (|>> ("lux i64 =" num_bindings)) - (list\each list\size data')) + (list#each list#size data')) (let [apply (: (-> Replacement_Environment (List Code)) - (function (_ env) (list\each (realized_template env) templates)))] + (function (_ env) (list#each (realized_template env) templates)))] (|> data' - (list\each (function\composite apply (replacement_environment bindings'))) - list\conjoint + (list#each (function#composite apply (replacement_environment bindings'))) + list#conjoint in)) {#None})))) {#Some output} - (in_meta (list\composite output branches)) + (in_meta (list#composite output branches)) {#None} (failure "Wrong syntax for ^template")) @@ -4269,7 +4269,7 @@ (-> Type Code) (case type {#Primitive name params} - (` {.#Primitive (~ (text$ name)) (~ (untemplated_list (list\each type_code params)))}) + (` {.#Primitive (~ (text$ name)) (~ (untemplated_list (list#each type_code params)))}) (^template [] [{ left right} @@ -4285,7 +4285,7 @@ (^template [] [{ env type} - (let [env' (untemplated_list (list\each type_code env))] + (let [env' (untemplated_list (list#each type_code env))] (` { (~ env') (~ (type_code type))}))]) ([.#UnivQ] [.#ExQ]) @@ -4309,24 +4309,24 @@ (case ?params {#Some [name bindings body]} (let [pairs (pairs bindings) - vars (list\each product\left pairs) - inits (list\each product\right pairs)] + vars (list#each product#left pairs) + inits (list#each product#right pairs)] (if (every? identifier? inits) (do meta_monad [inits' (: (Meta (List Name)) - (case (monad\each maybe_monad identifier_name inits) + (case (monad#each maybe_monad identifier_name inits) {#Some inits'} (in_meta inits') {#None} (failure "Wrong syntax for loop"))) - init_types (monad\each meta_monad type_definition inits') + init_types (monad#each meta_monad type_definition inits') expected ..expected_type] (in_meta (list (` (("lux type check" - (-> (~+ (list\each type_code init_types)) + (-> (~+ (list#each type_code init_types)) (~ (type_code expected))) (function ((~ name) (~+ vars)) (~ body))) (~+ inits)))))) (do meta_monad - [aliases (monad\each meta_monad + [aliases (monad#each meta_monad (: (-> Code (Meta Code)) (function (_ _) (..identifier ""))) inits)] @@ -4346,7 +4346,7 @@ (case (: (Maybe [Name (List Name)]) (do maybe_monad [hslot (..identifier_name hslot') - tslots (monad\each maybe_monad ..identifier_name tslots')] + tslots (monad#each maybe_monad ..identifier_name tslots')] (in [hslot tslots]))) {#Some slots} (in_meta slots) @@ -4355,22 +4355,22 @@ (failure "Wrong syntax for ^slots"))) .let [[hslot tslots] slots] hslot (..normal hslot) - tslots (monad\each meta_monad ..normal tslots) + tslots (monad#each meta_monad ..normal tslots) output (..type_slot hslot) g!_ (..identifier "_") .let [[idx tags exported? type] output - slot_pairings (list\each (: (-> Name [Text Code]) + slot_pairings (list#each (: (-> Name [Text Code]) (function (_ [module name]) [name (local_identifier$ name)])) (list& hslot tslots)) pattern (|> tags - (list\each (: (-> Name (List Code)) + (list#each (: (-> Name (List Code)) (function (_ [module name]) (let [tag (identifier$ [module name])] - (case (plist\value name slot_pairings) + (case (plist#value name slot_pairings) {#Some binding} (list tag binding) {#None} (list tag g!_)))))) - list\conjoint + list#conjoint tuple$)]] (in_meta (list& pattern body branches))) @@ -4384,14 +4384,14 @@ (list target) [_ {#Identifier [module name]}] - (if (and (text\= "" module) - (text\= label name)) + (if (and (text#= "" module) + (text#= label name)) tokens (list target)) (^template [] [[location { elems}] - (list [location { (list\conjoint (list\each (with_expansions' label tokens) elems))}])]) + (list [location { (list#conjoint (list#each (with_expansions' label tokens) elems))}])]) ([#Form] [#Variant] [#Tuple]))) @@ -4453,13 +4453,13 @@ ["Text" Text text$]) _ - (failure (text\composite "Cannot anti-quote type: " (name\encoded name)))))) + (failure (text#composite "Cannot anti-quote type: " (name#encoded name)))))) (def: (static_literal token) (-> Code (Meta Code)) (case token [_ {#Identifier [def_module def_name]}] - (if (text\= "" def_module) + (if (text#= "" def_module) (do meta_monad [current_module current_module_name] (static_simple_literal [current_module def_name])) @@ -4468,7 +4468,7 @@ (^template [] [[meta { parts}] (do meta_monad - [=parts (monad\each meta_monad static_literal parts)] + [=parts (monad#each meta_monad static_literal parts)] (in [meta { =parts}]))]) ([#Form] [#Variant] @@ -4477,7 +4477,7 @@ _ (in_meta token) ... TODO: Figure out why this doesn't work: - ... (\ meta_monad in token) + ... (# meta_monad in token) )) (macro: .public (static tokens) @@ -4511,12 +4511,12 @@ {#Item init extras} (do meta_monad - [extras' (monad\each meta_monad case_level^ extras)] + [extras' (monad#each meta_monad case_level^ extras)] (in [init extras'])))) (def: (multi_level_case$ g!_ [[init_pattern levels] body]) (-> Code [Multi_Level_Case Code] (List Code)) - (let [inner_pattern_body (list\mix (function (_ [calculation pattern] success) + (let [inner_pattern_body (list#mix (function (_ [calculation pattern] success) (let [bind? (case pattern [_ {#Identifier _}] #1 @@ -4531,7 +4531,7 @@ (list) (list g!_ (` {.#None})))))))) (` {.#Some (~ body)}) - (: (List [Code Code]) (list\reversed levels)))] + (: (List [Code Code]) (list#reversed levels)))] (list init_pattern inner_pattern_body))) (macro: .public (^multi tokens) @@ -4571,8 +4571,8 @@ ... 'wrong_syntax_error' for easier maintenance of the error_messages. (def: wrong_syntax_error (-> Name Text) - (|>> name\encoded - (text\composite "Wrong syntax for "))) + (|>> name#encoded + (text#composite "Wrong syntax for "))) (macro: .public (name_of tokens) (case tokens @@ -4596,12 +4596,12 @@ (^ (list [_ {#Nat idx}])) (do meta_monad [stvs ..scope_type_vars] - (case (..item idx (list\reversed stvs)) + (case (..item idx (list#reversed stvs)) {#Some var_id} (in (list (` {.#Ex (~ (nat$ var_id))}))) {#None} - (failure (text\composite "Indexed-type does not exist: " (nat\encoded idx))))) + (failure (text#composite "Indexed-type does not exist: " (nat#encoded idx))))) _ (failure (..wrong_syntax_error (name_of ..$))))) @@ -4655,7 +4655,7 @@ (do meta_monad [location ..location .let [[module line column] location - location ($_ "lux text concat" (text\encoded module) "," (nat\encoded line) "," (nat\encoded column)) + location ($_ "lux text concat" (text#encoded module) "," (nat#encoded line) "," (nat#encoded column)) message ($_ "lux text concat" "Undefined behavior @ " location)]] (in (list (` (..panic! (~ (text$ message))))))) @@ -4704,16 +4704,16 @@ [g!tokens (..identifier "tokens") g!compiler (..identifier "compiler") g!_ (..identifier "_") - .let [rep_env (list\each (function (_ arg) + .let [rep_env (list#each (function (_ arg) [arg (` ((~' ~) (~ (local_identifier$ arg))))]) args)] this_module current_module_name] (in (list (` (macro: (~ export_policy) ((~ (local_identifier$ name)) (~ g!tokens) (~ g!compiler)) (case (~ g!tokens) - (^ (list (~+ (list\each local_identifier$ args)))) + (^ (list (~+ (list#each local_identifier$ args)))) {.#Right [(~ g!compiler) - (list (~+ (list\each (function (_ template) + (list (~+ (list#each (function (_ template) (` (`' (~ (with_replacements rep_env template))))) input_templates)))]} @@ -4760,14 +4760,14 @@ (in (:as ..Text value)) _ - (failure ($_ text\composite - "Invalid target platform (must be a value of type Text): " (name\encoded identifier) - " : " (..code\encoded (..type_code type)))))) + (failure ($_ text#composite + "Invalid target platform (must be a value of type Text): " (name#encoded identifier) + " : " (..code#encoded (..type_code type)))))) _ - (failure ($_ text\composite - "Invalid target platform syntax: " (..code\encoded choice) - ..\n "Must be either a text literal or an identifier.")))) + (failure ($_ text#composite + "Invalid target platform syntax: " (..code#encoded choice) + \n "Must be either a text literal or an identifier.")))) (def: (target_pick target options default) (-> Text (List [Code Code]) (Maybe Code) (Meta (List Code))) @@ -4775,7 +4775,7 @@ {#End} (case default {#None} - (failure ($_ text\composite "No code for target platform: " target)) + (failure ($_ text#composite "No code for target platform: " target)) {#Some default} (in_meta (list default))) @@ -4783,14 +4783,14 @@ {#Item [key pick] options'} (do meta_monad [platform (..platform_name key)] - (if (text\= target platform) + (if (text#= target platform) (in_meta (list pick)) (target_pick target options' default))))) (def: (pairs' tokens) (-> (List Code) (Maybe (List [Code Code]))) (if (|> tokens - list\size + list#size (n/% 2) ("lux i64 =" 0)) {#Some (pairs tokens)} @@ -4830,9 +4830,9 @@ (^template [] [[ann { parts}] (do meta_monad - [=parts (monad\each meta_monad embedded_expansions parts)] - (in [(list\mix list\composite (list) (list\each product\left =parts)) - [ann { (list\each product\right =parts)}]]))]) + [=parts (monad#each meta_monad embedded_expansions parts)] + (in [(list#mix list#composite (list) (list#each product#left =parts)) + [ann { (list#each product#right =parts)}]]))]) ([#Form] [#Variant] [#Tuple]) @@ -4847,8 +4847,8 @@ [=raw (..embedded_expansions raw) .let [[labels labelled] =raw]] (in (list (` (with_expansions [(~+ (|> labels - (list\each (function (_ [label expansion]) (list label expansion))) - list\conjoint))] + (list#each (function (_ [label expansion]) (list label expansion))) + list#conjoint))] (~ labelled)))))) _ @@ -4871,16 +4871,16 @@ [(def: ( g!meta untemplated_pattern elems) (-> Code (-> Code (Meta Code)) (-> (List Code) (Meta Code))) - (case (list\reversed elems) + (case (list#reversed elems) {#Item [_ {#Form {#Item [[_ {#Identifier ["" "~+"]}] {#Item [spliced {#End}]}]}}] inits} (do meta_monad - [=inits (monad\each meta_monad untemplated_pattern (list\reversed inits))] + [=inits (monad#each meta_monad untemplated_pattern (list#reversed inits))] (in (` [(~ g!meta) { (~ (untemplated_list& spliced =inits))}]))) _ (do meta_monad - [=elems (monad\each meta_monad untemplated_pattern elems)] + [=elems (monad#each meta_monad untemplated_pattern elems)] (in (` [(~ g!meta) { (~ (untemplated_list =elems))}])))))] [.#Form untemplated_form] @@ -4944,12 +4944,12 @@ (macro: .public (:let tokens) (case tokens (^ (list [_ {#Tuple bindings}] bodyT)) - (if (multiple? 2 (list\size bindings)) + (if (multiple? 2 (list#size bindings)) (in_meta (list (` (..with_expansions [(~+ (|> bindings ..pairs - (list\each (function (_ [localT valueT]) + (list#each (function (_ [localT valueT]) (list localT (` (..as_is (~ valueT)))))) - (list\mix list\composite (list))))] + (list#mix list#composite (list))))] (~ bodyT))))) (..failure ":let requires an even number of parts")) @@ -4980,11 +4980,11 @@ (macro: .public (Interface tokens) (do meta_monad - [methods' (monad\each meta_monad expansion tokens)] - (case (everyP methodP (list\conjoint methods')) + [methods' (monad#each meta_monad expansion tokens)] + (case (everyP methodP (list#conjoint methods')) {#Some methods} - (in (list (` (..Tuple (~+ (list\each product\right methods)))) - (tuple$ (list\each (|>> product\left text$) methods)))) + (in (list (` (..Tuple (~+ (list#each product#right methods)))) + (tuple$ (list#each (|>> product#left text$) methods)))) {#None} (failure "Wrong syntax for Interface")))) -- cgit v1.2.3