diff options
author | Eduardo Julian | 2022-06-26 12:55:04 -0400 |
---|---|---|
committer | Eduardo Julian | 2022-06-26 12:55:04 -0400 |
commit | 3053fd79bc6ae42415298ee056a268dc2c9b690c (patch) | |
tree | a71ac65955b42978160087b933c962b27f85fbcc /stdlib/source/library | |
parent | 716ca5377386ca87eded7dd514ccc17f8ed281c3 (diff) |
New "parser" hierarchy. [Part 4]
Diffstat (limited to '')
96 files changed, 447 insertions, 465 deletions
diff --git a/stdlib/source/library/lux/abstract/monad/indexed.lux b/stdlib/source/library/lux/abstract/monad/indexed.lux index ae8ad03db..8d03d011e 100644 --- a/stdlib/source/library/lux/abstract/monad/indexed.lux +++ b/stdlib/source/library/lux/abstract/monad/indexed.lux @@ -2,14 +2,14 @@ [library [lux (.except global) [control - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["<>" parser]] [data [collection ["[0]" list (.use "[1]#[0]" functor mix)]]] ["[0]" macro (.only) [syntax (.only syntax)] - ["[0]" code]]]] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]]]] ["[0]" //]) (type .public (IxMonad m) diff --git a/stdlib/source/library/lux/control/concatenative.lux b/stdlib/source/library/lux/control/concatenative.lux index b0768b43e..4e900a860 100644 --- a/stdlib/source/library/lux/control/concatenative.lux +++ b/stdlib/source/library/lux/control/concatenative.lux @@ -15,8 +15,9 @@ ["[0]" list (.use "[1]#[0]" mix functor)]]] ["[0]" macro (.only with_symbols) [syntax (.only syntax)] - ["[0]" code] - ["[0]" template]] + ["[0]" template] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]] [math [number ["n" nat] @@ -24,8 +25,7 @@ ["r" rev] ["f" frac]]]]] [// - ["<>" parser (.use "[1]#[0]" monad) - ["<[0]>" code (.only Parser)]]]) + ["<>" parser (.use "[1]#[0]" monad)]]) (type Stack (Record diff --git a/stdlib/source/library/lux/control/continuation.lux b/stdlib/source/library/lux/control/continuation.lux index 57f0053e9..a9e62ac66 100644 --- a/stdlib/source/library/lux/control/continuation.lux +++ b/stdlib/source/library/lux/control/continuation.lux @@ -6,12 +6,11 @@ [apply (.only Apply)] [monad (.only Monad do)]] [control - ["[0]" function] - [parser - ["<[0]>" code]]] + ["[0]" function]] [macro (.only with_symbols) [syntax (.only syntax)] - ["[0]" code]]]]) + ["[0]" code (.only) + ["<[1]>" \\parser]]]]]) (type .public (Cont i o) (-> (-> i o) o)) diff --git a/stdlib/source/library/lux/control/exception.lux b/stdlib/source/library/lux/control/exception.lux index 98e0c6f72..cf45dfe13 100644 --- a/stdlib/source/library/lux/control/exception.lux +++ b/stdlib/source/library/lux/control/exception.lux @@ -6,16 +6,16 @@ [abstract [monad (.only do)]] [control - ["[0]" maybe] - ["<>" parser (.use "[1]#[0]" monad) - ["<[0]>" code (.only Parser)]]] + ["<>" parser (.use "[1]#[0]" monad)] + ["[0]" maybe]] [data ["[0]" product] ["[0]" text (.use "[1]#[0]" monoid)] [collection ["[0]" list (.use "[1]#[0]" functor mix)]]] [macro - ["[0]" code] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]] [syntax (.only syntax) ["|[0]|" input] ["[0]" type diff --git a/stdlib/source/library/lux/control/function/contract.lux b/stdlib/source/library/lux/control/function/contract.lux index 80e90f6ca..df8702fed 100644 --- a/stdlib/source/library/lux/control/function/contract.lux +++ b/stdlib/source/library/lux/control/function/contract.lux @@ -2,15 +2,14 @@ [library [lux (.except) [control - ["[0]" exception (.only exception)] - [parser - ["<[0]>" code]]] + ["[0]" exception (.only exception)]] [data [text ["%" \\format (.only format)]]] [macro (.only with_symbols) [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number ["i" int]]]]]) diff --git a/stdlib/source/library/lux/control/function/inline.lux b/stdlib/source/library/lux/control/function/inline.lux index 10141088d..98d6e56c9 100644 --- a/stdlib/source/library/lux/control/function/inline.lux +++ b/stdlib/source/library/lux/control/function/inline.lux @@ -5,13 +5,13 @@ [abstract ["[0]" monad (.only do)]] [control - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["<>" parser]] [data [collection ["[0]" list (.use "[1]#[0]" monad)]]] ["[0]" macro (.only) - ["[0]" code] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]] [syntax (.only syntax) ["|[0]|" export]]]]]) diff --git a/stdlib/source/library/lux/control/function/mutual.lux b/stdlib/source/library/lux/control/function/mutual.lux index 617efe7de..c6107b1a9 100644 --- a/stdlib/source/library/lux/control/function/mutual.lux +++ b/stdlib/source/library/lux/control/function/mutual.lux @@ -5,9 +5,8 @@ [abstract ["[0]" monad (.only do)]] [control - ["[0]" try (.only Try)] - ["<>" parser (.use "[1]#[0]" monad) - ["<[0]>" code (.only Parser)]]] + ["<>" parser (.use "[1]#[0]" monad)] + ["[0]" try (.only Try)]] [data ["[0]" product] [text @@ -18,7 +17,8 @@ ["[0]" plist (.only PList)]]]] ["[0]" macro (.only) ["[0]" local] - ["[0]" code] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]] [syntax (.only syntax) ["[0]" declaration (.only Declaration)]]]]] ["[0]" //]) diff --git a/stdlib/source/library/lux/control/io.lux b/stdlib/source/library/lux/control/io.lux index 5ae034638..609814844 100644 --- a/stdlib/source/library/lux/control/io.lux +++ b/stdlib/source/library/lux/control/io.lux @@ -5,14 +5,13 @@ [functor (.only Functor)] [apply (.only Apply)] [monad (.only Monad do)]] - [control - [parser - ["<[0]>" code]]] [type [primitive (.except)]] [macro (.only with_symbols) [syntax (.only syntax)] - ["[0]" template]]]]) + ["[0]" template] + ["[0]" code + ["<[1]>" \\parser]]]]]) (primitive .public (IO a) (-> Any a) diff --git a/stdlib/source/library/lux/control/lazy.lux b/stdlib/source/library/lux/control/lazy.lux index 95299e5f0..b20711ba7 100644 --- a/stdlib/source/library/lux/control/lazy.lux +++ b/stdlib/source/library/lux/control/lazy.lux @@ -8,12 +8,12 @@ [equivalence (.only Equivalence)]] [control ["[0]" io] - [parser - ["<[0]>" code]] [concurrency ["[0]" atom]]] [macro (.only with_symbols) - [syntax (.only syntax)]] + [syntax (.only syntax)] + ["[0]" code + ["<[1]>" \\parser]]] [type (.only sharing) [primitive (.except)]]]]) diff --git a/stdlib/source/library/lux/control/pipe.lux b/stdlib/source/library/lux/control/pipe.lux index eff3b6dce..99e7a697c 100644 --- a/stdlib/source/library/lux/control/pipe.lux +++ b/stdlib/source/library/lux/control/pipe.lux @@ -4,16 +4,16 @@ [abstract ["[0]" monad]] [control - ["[0]" try] - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["<>" parser] + ["[0]" try]] [data ["[0]" identity] [collection ["[0]" list (.use "[1]#[0]" monad)]]] [macro (.only with_symbols) [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]] [math [number ["n" nat] diff --git a/stdlib/source/library/lux/control/remember.lux b/stdlib/source/library/lux/control/remember.lux index 264d13adb..bce726fb1 100644 --- a/stdlib/source/library/lux/control/remember.lux +++ b/stdlib/source/library/lux/control/remember.lux @@ -4,11 +4,10 @@ [abstract [monad (.only do)]] [control + ["<>" parser (.use "[1]#[0]" functor)] ["[0]" io] ["[0]" try] - ["[0]" exception (.only exception)] - ["<>" parser (.use "[1]#[0]" functor) - ["<c>" code (.only Parser)]]] + ["[0]" exception (.only exception)]] [data ["[0]" text ["%" \\format (.only format)]]] @@ -17,9 +16,10 @@ ["[0]" date (.only Date) (.use "[1]#[0]" order)]] ["[0]" meta] [macro - ["[0]" code] + [syntax (.only syntax)] ["[0]" template] - [syntax (.only syntax)]]]]) + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]]]]) (exception .public (must_remember [deadline Date today Date @@ -40,9 +40,9 @@ (Parser Date) (all <>.either (<>#each (|>> instant.of_millis instant.date) - <c>.int) + <code>.int) (do <>.monad - [raw <c>.text] + [raw <code>.text] (case (at date.codec decoded raw) {try.#Success date} (in date) @@ -52,8 +52,8 @@ (def .public remember (syntax (_ [deadline ..deadline - message <c>.text - focus (<>.maybe <c>.any)]) + message <code>.text + focus (<>.maybe <code>.any)]) (let [now (io.run! instant.now) today (instant.date now)] (if (date#< deadline today) @@ -68,8 +68,8 @@ (with_template [<name> <message>] [(`` (def .public <name> (syntax (_ [deadline ..deadline - message <c>.text - focus (<>.maybe <c>.any)]) + message <code>.text + focus (<>.maybe <code>.any)]) (in (list (` (..remember (~ (code.text (%.date deadline))) (~ (code.text (format <message> " " message))) (~+ (case focus diff --git a/stdlib/source/library/lux/control/security/capability.lux b/stdlib/source/library/lux/control/security/capability.lux index 0164bcc7b..96813f726 100644 --- a/stdlib/source/library/lux/control/security/capability.lux +++ b/stdlib/source/library/lux/control/security/capability.lux @@ -4,9 +4,8 @@ [abstract [monad (.only do)]] [control + ["<>" parser] ["[0]" io (.only IO)] - ["<>" parser (.only) - ["<c>" code]] [concurrency ["[0]" async (.only Async)]]] [data @@ -18,7 +17,8 @@ [primitive (.except)]] ["[0]" meta] ["[0]" macro (.only) - ["[0]" code] + ["[0]" code (.only) + ["<[1]>" \\parser]] [syntax (.only syntax) ["|[0]|" export] ["|[0]|" declaration]]]]]) @@ -44,7 +44,7 @@ (|export|.parser (all <>.and |declaration|.parser - (<c>.form (all <>.and <c>.local <c>.any <c>.any))))]) + (<code>.form (all <>.and <code>.local <code>.any <code>.any))))]) (macro.with_symbols [g!_] (do [! meta.monad] [this_module meta.current_module_name diff --git a/stdlib/source/library/lux/data/collection/sequence.lux b/stdlib/source/library/lux/data/collection/sequence.lux index 493b5d411..3d5dfd300 100644 --- a/stdlib/source/library/lux/data/collection/sequence.lux +++ b/stdlib/source/library/lux/data/collection/sequence.lux @@ -14,11 +14,10 @@ [mix (.only Mix)] [predicate (.only Predicate)]] [control + ["<>" parser] ["[0]" maybe (.use "[1]#[0]" functor)] ["[0]" try (.only Try)] - ["[0]" exception (.only exception)] - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["[0]" exception (.only exception)]] [data ["[0]" product] [collection @@ -28,7 +27,8 @@ [macro [syntax (.only syntax)] ["^" pattern] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]] [math [number ["n" nat] diff --git a/stdlib/source/library/lux/data/collection/stream.lux b/stdlib/source/library/lux/data/collection/stream.lux index 42523d5e3..4e82cbe1e 100644 --- a/stdlib/source/library/lux/data/collection/stream.lux +++ b/stdlib/source/library/lux/data/collection/stream.lux @@ -6,15 +6,15 @@ [comonad (.only CoMonad)]] [control ["//" continuation (.only Cont)] - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["<>" parser]] [data ["[0]" bit] [collection ["[0]" list (.use "[1]#[0]" monad)]]] [macro (.only with_symbols) [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]] [math [number ["n" nat]]]]]) diff --git a/stdlib/source/library/lux/data/collection/tree.lux b/stdlib/source/library/lux/data/collection/tree.lux index f05521c70..64288458d 100644 --- a/stdlib/source/library/lux/data/collection/tree.lux +++ b/stdlib/source/library/lux/data/collection/tree.lux @@ -7,14 +7,14 @@ [mix (.only Mix)] [monad (.only do)]] [control - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["<>" parser]] [data [collection ["[0]" list (.use "[1]#[0]" monad mix)]]] [macro [syntax (.only syntax)] - ["[0]" code]]]]) + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]]]]) (type .public (Tree a) (Record diff --git a/stdlib/source/library/lux/data/format/css/value.lux b/stdlib/source/library/lux/data/format/css/value.lux index ac6af642c..6dab6619e 100644 --- a/stdlib/source/library/lux/data/format/css/value.lux +++ b/stdlib/source/library/lux/data/format/css/value.lux @@ -2,9 +2,7 @@ [library [lux (.except Label All Location and static false true) [control - ["[0]" maybe] - [parser - ["<[0]>" code]]] + ["[0]" maybe]] [data ["[0]" color] ["[0]" product] @@ -15,7 +13,8 @@ [macro [syntax (.only syntax)] ["[0]" template] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number ["n" nat] diff --git a/stdlib/source/library/lux/data/format/json.lux b/stdlib/source/library/lux/data/format/json.lux index 845a4e057..3f14a9599 100644 --- a/stdlib/source/library/lux/data/format/json.lux +++ b/stdlib/source/library/lux/data/format/json.lux @@ -8,11 +8,10 @@ [predicate (.only Predicate)] ["[0]" monad (.only do)]] [control + ["<>" parser (.use "[1]#[0]" monad)] ["[0]" pipe] ["[0]" maybe] - ["[0]" try (.only Try)] - ["<>" parser (.use "[1]#[0]" monad) - ["<[0]>" code]]] + ["[0]" try (.only Try)]] [data ["[0]" bit] ["[0]" product] @@ -25,7 +24,8 @@ [macro [syntax (.only syntax)] ["^" pattern] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number ["n" nat] diff --git a/stdlib/source/library/lux/data/text/escape.lux b/stdlib/source/library/lux/data/text/escape.lux index f8980caf1..aff108c29 100644 --- a/stdlib/source/library/lux/data/text/escape.lux +++ b/stdlib/source/library/lux/data/text/escape.lux @@ -5,18 +5,18 @@ [abstract [monad (.only do)]] [control + ["<>" parser] ["[0]" maybe] ["[0]" try (.only Try)] - ["[0]" exception (.only exception)] - ["<>" parser - ["<[0]>" code]]] + ["[0]" exception (.only exception)]] [math [number (.only hex) ["n" nat]]] [macro [syntax (.only syntax)] ["^" pattern] - ["[0]" code]]]] + ["[0]" code (.only) + ["<[1]>" \\parser]]]]] ["[0]" // (.only Char) ["%" \\format (.only format)]]) diff --git a/stdlib/source/library/lux/data/text/regex.lux b/stdlib/source/library/lux/data/text/regex.lux index 957c12bd7..c9a8a5d68 100644 --- a/stdlib/source/library/lux/data/text/regex.lux +++ b/stdlib/source/library/lux/data/text/regex.lux @@ -5,11 +5,10 @@ [abstract [monad (.only do)]] [control + ["<>" parser (.use "[1]#[0]" monad)] ["[0]" maybe] ["[0]" try] - ["[0]" exception (.only exception)] - ["<>" parser (.use "[1]#[0]" monad) - ["<[0]>" code]]] + ["[0]" exception (.only exception)]] [data ["[0]" product] ["[0]" text @@ -19,7 +18,8 @@ [macro (.only with_symbols) [syntax (.only syntax)] ["^" pattern] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number (.only hex) ["n" nat (.use "[1]#[0]" decimal)]]]]] diff --git a/stdlib/source/library/lux/debug.lux b/stdlib/source/library/lux/debug.lux index 3db55592d..fa9e36cff 100644 --- a/stdlib/source/library/lux/debug.lux +++ b/stdlib/source/library/lux/debug.lux @@ -2,19 +2,16 @@ [library [lux (.except private) ["@" target] - ["[0]" type] ["[0]" ffi (.only import)] ["[0]" meta] [abstract ["[0]" monad (.only do)]] [control + ["<>" parser] ["[0]" pipe] ["[0]" function] ["[0]" try (.only Try)] - ["[0]" exception (.only exception)] - ["<>" parser (.only) - ["<[0]>" type (.only Parser)] - ["<[0]>" code]]] + ["[0]" exception (.only exception)]] [data ["[0]" text (.only) ["%" \\format (.only Format)]] @@ -29,7 +26,8 @@ ["^" pattern] ["[0]" template] ["[0]" syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number [ratio (.only Ratio)] @@ -40,7 +38,9 @@ [duration (.only Duration)] [date (.only Date)] [month (.only Month)] - [day (.only Day)]]]]) + [day (.only Day)]] + ["[0]" type (.only) + ["<[1]>" \\parser (.only Parser)]]]]) (with_expansions [<jvm> (these (import java/lang/String "[1]::[0]") diff --git a/stdlib/source/library/lux/documentation.lux b/stdlib/source/library/lux/documentation.lux index 26e87d50d..2fd1b2bdf 100644 --- a/stdlib/source/library/lux/documentation.lux +++ b/stdlib/source/library/lux/documentation.lux @@ -7,10 +7,9 @@ [monad (.only do)] ["[0]" enum]] [control + ["<>" parser (.use "[1]#[0]" monad)] ["[0]" maybe (.use "[1]#[0]" functor)] - ["[0]" exception (.only exception)] - ["<>" parser (.use "[1]#[0]" monad) - ["<[0]>" code (.only Parser)]]] + ["[0]" exception (.only exception)]] [data ["[0]" product] ["[0]" text (.only \n) (.use "[1]#[0]" order) @@ -24,8 +23,9 @@ ["[0]" macro (.only) [syntax (.only syntax)] ["^" pattern] - ["[0]" code] - ["[0]" template]] + ["[0]" template] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]] [math [number ["n" nat]]] diff --git a/stdlib/source/library/lux/extension.lux b/stdlib/source/library/lux/extension.lux index 3d1b684f6..9c3946a30 100644 --- a/stdlib/source/library/lux/extension.lux +++ b/stdlib/source/library/lux/extension.lux @@ -4,15 +4,15 @@ [abstract ["[0]" monad]] [control - ["<>" parser (.use "[1]#[0]" monad) - ["<c>" code (.only Parser)]]] + ["<>" parser (.use "[1]#[0]" monad)]] [data ["[0]" product] [collection ["[0]" list (.use "[1]#[0]" functor)]]] [macro (.only with_symbols) [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<c>" \\parser (.only Parser)]]] [tool [compiler ["[0]" phase] diff --git a/stdlib/source/library/lux/ffi.jvm.lux b/stdlib/source/library/lux/ffi.jvm.lux index fddb85cb7..5768251a8 100644 --- a/stdlib/source/library/lux/ffi.jvm.lux +++ b/stdlib/source/library/lux/ffi.jvm.lux @@ -5,12 +5,11 @@ [abstract ["[0]" monad (.only do)]] [control + ["<>" parser (.use "[1]#[0]" monad)] ["[0]" io] ["[0]" maybe] ["[0]" try (.only Try)] - ["[0]" exception (.only Exception exception)] - ["<>" parser (.use "[1]#[0]" monad) - ["<[0]>" code (.only Parser)]]] + ["[0]" exception (.only Exception exception)]] [data ["[0]" product] ["[0]" text (.use "[1]#[0]" equivalence) @@ -23,9 +22,10 @@ [macro (.only with_symbols) [syntax (.only syntax)] ["^" pattern] - ["[0]" code] ["[0]" template] - ["[0]" context]] + ["[0]" context] + ["[0]" code (.only) + ["<[1]>" \\parser(.only Parser)]]] [math [number ["n" nat]]] diff --git a/stdlib/source/library/lux/ffi.lux b/stdlib/source/library/lux/ffi.lux index 097f91e77..103d2babd 100644 --- a/stdlib/source/library/lux/ffi.lux +++ b/stdlib/source/library/lux/ffi.lux @@ -5,11 +5,10 @@ [abstract ["[0]" monad (.only do)]] [control + ["<>" parser (.use "[1]#[0]" monad)] ["[0]" io] ["[0]" maybe (.use "[1]#[0]" functor)] - ["[0]" try] - ["<>" parser (.use "[1]#[0]" monad) - ["<[0]>" code (.only Parser)]]] + ["[0]" try]] [data ["[0]" product] ["[0]" text (.use "[1]#[0]" equivalence) @@ -18,8 +17,9 @@ ["[0]" list (.use "[1]#[0]" monad mix)]]] ["[0]" macro (.only with_symbols) [syntax (.only syntax)] - ["[0]" code] - ["[0]" template]] + ["[0]" template] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]] ["@" target (.only) ["[0]" js]] [type @@ -378,8 +378,8 @@ parameters (list#each ..output_type :parameters:))] (` (.def ((~ g!it) (~+ (case g!parameters - {.#End} (list g!it) - _ (list#each (the #mandatory) g!parameters)))) + {.#End} (list g!it) + _ (list#each (the #mandatory) g!parameters)))) (.All ((~ g!it) (~+ g!variables)) (-> (~+ :input:/*) (~ (|> :output: @@ -450,8 +450,8 @@ g!class (` ((~ (code.local (maybe.else class_name alias))) (~+ g!class_variables))) :output: [#optional? false #mandatory g!class]] (` (.def ((~ g!it) (~+ (case g!parameters - {.#End} (list g!it) - _ (list#each (the #mandatory) g!parameters)))) + {.#End} (list g!it) + _ (list#each (the #mandatory) g!parameters)))) (.All ((~ g!it) (~+ g!class_variables) (~+ g!input_variables)) (.-> (~+ (list#each ..output_type :parameters:)) (~ (|> :output: @@ -728,51 +728,51 @@ {try.#Failure (%.format "Invalid inputs for extension: " (%.text name))})))))])) (analysis <undefined> - [name phase archive state] - <code>.end - _ - {try.#Success [state (extension_analysis name (list))]}) + [name phase archive state] + <code>.end + _ + {try.#Success [state (extension_analysis name (list))]}) (generation <undefined> - [name phase archive state] - (list) - {try.#Success [state js.undefined]}) + [name phase archive state] + (list) + {try.#Success [state js.undefined]}) (def .public undefined (template (undefined) [(.is ..Undefined (<undefined>))])) (analysis <undefined?> - [name phase archive state] - <code>.any - it - (do try.monad - [[state it] (phase archive (` (.is .Any (~ it))) state)] - (in [state (extension_analysis name (list it))]))) + [name phase archive state] + <code>.any + it + (do try.monad + [[state it] (phase archive (` (.is .Any (~ it))) state)] + (in [state (extension_analysis name (list it))]))) (generation <undefined?> - [name phase archive state] - (list it) - (do try.monad - [[state it] (phase archive it state)] - (in [state (js.= js.undefined it)]))) + [name phase archive state] + (list it) + (do try.monad + [[state it] (phase archive it state)] + (in [state (js.= js.undefined it)]))) (def .public undefined? (template (undefined? <it>) [(.as .Bit (.is .Any (<undefined?> <it>)))])) (analysis <object> - [name phase archive state] - (<>.some (<>.and <code>.text <code>.any)) - it - (do [! try.monad] - [[state output] (monad.mix ! (.function (_ [key value] [state output]) - (do ! - [[state value] (phase archive (` (.is .Any (~ value))) state)] - (in [state (list.partial value (text_analysis key) output)]))) - [state (list)] - it)] - (in [state (extension_analysis name (list.reversed output))]))) + [name phase archive state] + (<>.some (<>.and <code>.text <code>.any)) + it + (do [! try.monad] + [[state output] (monad.mix ! (.function (_ [key value] [state output]) + (do ! + [[state value] (phase archive (` (.is .Any (~ value))) state)] + (in [state (list.partial value (text_analysis key) output)]))) + [state (list)] + it)] + (in [state (extension_analysis name (list.reversed output))]))) (def text_synthesis (template (_ <it>) @@ -791,22 +791,22 @@ (.undefined))) (generation <object> - [name phase archive state] - (list.partial head_key head_value tail) - (do [! try.monad] - [[state output] (monad.mix ! - (.function (_ [key value] [state output]) - (case key - (pattern (text_synthesis key)) - (do try.monad - [[state value] (phase archive value state)] - (in [state (list.partial [key value] output)])) - - _ - (.undefined))) - [state (list)] - (pairs (list.partial head_key head_value tail)))] - (in [state (js.object (list.reversed output))]))) + [name phase archive state] + (list.partial head_key head_value tail) + (do [! try.monad] + [[state output] (monad.mix ! + (.function (_ [key value] [state output]) + (case key + (pattern (text_synthesis key)) + (do try.monad + [[state value] (phase archive value state)] + (in [state (list.partial [key value] output)])) + + _ + (.undefined))) + [state (list)] + (pairs (list.partial head_key head_value tail)))] + (in [state (js.object (list.reversed output))]))) (def .public object (syntax (_ [it (<>.some <code>.any)]) diff --git a/stdlib/source/library/lux/ffi.old.lux b/stdlib/source/library/lux/ffi.old.lux index a577a3b6d..a199b5012 100644 --- a/stdlib/source/library/lux/ffi.old.lux +++ b/stdlib/source/library/lux/ffi.old.lux @@ -6,12 +6,11 @@ ["[0]" monad (.only Monad do)] ["[0]" enum]] [control + ["<>" parser] ["[0]" function] ["[0]" io] ["[0]" maybe] - ["[0]" try (.only Try)] - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["[0]" try (.only Try)]] [data ["[0]" product] ["[0]" bit (.use "[1]#[0]" codec)] @@ -23,8 +22,9 @@ ["[0]" macro (.only with_symbols) [syntax (.only syntax)] ["^" pattern] - ["[0]" code] - ["[0]" template]] + ["[0]" template] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]] ["[0]" meta]]]) (with_template [<name> <op> <from> <to>] @@ -324,7 +324,7 @@ (text.replaced "/" ".")) (def (generic_class_type' mode type_params in_array? name+params - class_type') + class_type') (-> Primitive_Mode (List Type_Parameter) Bit [Text (List GenericType)] (-> Primitive_Mode (List Type_Parameter) Bit GenericType Code) Code) diff --git a/stdlib/source/library/lux/ffi.php.lux b/stdlib/source/library/lux/ffi.php.lux index 00b35e83d..f5f357021 100644 --- a/stdlib/source/library/lux/ffi.php.lux +++ b/stdlib/source/library/lux/ffi.php.lux @@ -6,10 +6,9 @@ [abstract [monad (.only do)]] [control + ["<>" parser (.use "[1]#[0]" monad)] ["[0]" io] - ["[0]" maybe] - ["<>" parser (.use "[1]#[0]" monad) - ["<[0]>" code (.only Parser)]]] + ["[0]" maybe]] [data ["[0]" product] ["[0]" text @@ -20,8 +19,9 @@ abstract] [macro (.only with_symbols) [syntax (.only syntax)] - ["[0]" code] - ["[0]" template]]]]) + ["[0]" template] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]]]]) (primitive .public (Object brand) Any) @@ -224,7 +224,7 @@ (-> Code Code Code (List Nullable) Bit Bit Nullable Code) (let [g!inputs (input_variables inputsT)] (` (def ((~ g!method) - [(~+ (list#each product.right g!inputs))]) + [(~+ (list#each product.right g!inputs))]) (-> [(~+ (list#each nullable_type inputsT))] (~ (|> (nullable_type outputT) (try_type try?) @@ -286,8 +286,8 @@ {#Virtual [method alias inputsT io? try? outputT]} (let [g!inputs (input_variables inputsT)] (` (def ((~ (qualify (maybe.else method alias))) - [(~+ (list#each product.right g!inputs))] - (~ g!object)) + [(~+ (list#each product.right g!inputs))] + (~ g!object)) (-> [(~+ (list#each nullable_type inputsT))] (~ g!type) (~ (|> (nullable_type outputT) diff --git a/stdlib/source/library/lux/ffi.scm.lux b/stdlib/source/library/lux/ffi.scm.lux index 49296eef7..27f8c4f4f 100644 --- a/stdlib/source/library/lux/ffi.scm.lux +++ b/stdlib/source/library/lux/ffi.scm.lux @@ -6,10 +6,9 @@ [abstract [monad (.only do)]] [control + ["<>" parser (.use "[1]#[0]" monad)] ["[0]" io] - ["[0]" maybe] - ["<>" parser (.use "[1]#[0]" monad) - ["<[0]>" code (.only Parser)]]] + ["[0]" maybe]] [data ["[0]" product] ["[0]" text @@ -20,8 +19,9 @@ abstract] [macro (.only with_symbols) [syntax (.only syntax)] - ["[0]" code] - ["[0]" template]]]]) + ["[0]" template] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]]]]) (primitive .public (Object brand) Any) @@ -189,7 +189,7 @@ (-> Code Code Code (List Nilable) Bit Bit Nilable Code) (let [g!inputs (input_variables inputsT)] (` (def ((~ g!method) - [(~+ (list#each product.right g!inputs))]) + [(~+ (list#each product.right g!inputs))]) (-> [(~+ (list#each nilable_type inputsT))] (~ (|> (nilable_type outputT) (try_type try?) diff --git a/stdlib/source/library/lux/ffi/export.js.lux b/stdlib/source/library/lux/ffi/export.js.lux index 2f635e20b..e40ea1964 100644 --- a/stdlib/source/library/lux/ffi/export.js.lux +++ b/stdlib/source/library/lux/ffi/export.js.lux @@ -7,8 +7,7 @@ [abstract ["[0]" monad (.only do)]] [control - ["<>" parser (.only) - ["<[0]>" code]]] + ["<>" parser]] [data [text ["%" \\format]] @@ -17,7 +16,8 @@ ["[0]" set]]] ["[0]" macro (.only) [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math ["[0]" random]] [target diff --git a/stdlib/source/library/lux/ffi/export.jvm.lux b/stdlib/source/library/lux/ffi/export.jvm.lux index 8d3cc0ea1..6aebb2c13 100644 --- a/stdlib/source/library/lux/ffi/export.jvm.lux +++ b/stdlib/source/library/lux/ffi/export.jvm.lux @@ -2,14 +2,14 @@ [library [lux (.except function) [control - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["<>" parser]] [data [collection ["[0]" list (.use "[1]#[0]" monad)]]] [macro [syntax (.only syntax)] - ["[0]" code]]]] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]]]] ["[0]" //]) (type (API of) diff --git a/stdlib/source/library/lux/ffi/export.lua.lux b/stdlib/source/library/lux/ffi/export.lua.lux index 6cfe5b891..66b98998d 100644 --- a/stdlib/source/library/lux/ffi/export.lua.lux +++ b/stdlib/source/library/lux/ffi/export.lua.lux @@ -7,8 +7,7 @@ [abstract ["[0]" monad (.only do)]] [control - ["<>" parser (.only) - ["<[0]>" code]]] + ["<>" parser]] [data [text ["%" \\format]] @@ -17,7 +16,8 @@ ["[0]" set]]] ["[0]" macro (.only) [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math ["[0]" random]] [target diff --git a/stdlib/source/library/lux/ffi/export.py.lux b/stdlib/source/library/lux/ffi/export.py.lux index 1a4b3e054..42309927e 100644 --- a/stdlib/source/library/lux/ffi/export.py.lux +++ b/stdlib/source/library/lux/ffi/export.py.lux @@ -7,8 +7,7 @@ [abstract ["[0]" monad (.only do)]] [control - ["<>" parser (.only) - ["<[0]>" code]]] + ["<>" parser]] [data [text ["%" \\format]] @@ -17,7 +16,8 @@ ["[0]" set]]] ["[0]" macro (.only) [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math ["[0]" random]] [target diff --git a/stdlib/source/library/lux/ffi/export.rb.lux b/stdlib/source/library/lux/ffi/export.rb.lux index 1266c730c..6777bfa86 100644 --- a/stdlib/source/library/lux/ffi/export.rb.lux +++ b/stdlib/source/library/lux/ffi/export.rb.lux @@ -8,8 +8,7 @@ [abstract ["[0]" monad (.only do)]] [control - ["<>" parser (.only) - ["<[0]>" code]]] + ["<>" parser]] [data ["[0]" text ["%" \\format] @@ -19,7 +18,8 @@ ["[0]" set]]] ["[0]" macro (.only) [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math ["[0]" random]] [target diff --git a/stdlib/source/library/lux/macro/context.lux b/stdlib/source/library/lux/macro/context.lux index fef8ae1d8..4d4224ccf 100644 --- a/stdlib/source/library/lux/macro/context.lux +++ b/stdlib/source/library/lux/macro/context.lux @@ -5,16 +5,18 @@ [monad (.only do)] ["[0]" predicate (.only Predicate)]] [control + ["?" parser] ["[0]" exception (.only exception)] - ["[0]" maybe] - ["?" parser (.only) - ["?[0]" code]]] + ["[0]" maybe]] [data ["[0]" text (.use "[1]#[0]" equivalence monoid)] [collection ["[0]" list] [dictionary ["[0]" plist (.only PList)]]]] + [macro + ["[0]" code + ["?[1]" \\parser]]] ["[0]" meta (.only) ["[0]" symbol (.use "[1]#[0]" codec)]]]] ["[0]" // (.only) diff --git a/stdlib/source/library/lux/macro/local.lux b/stdlib/source/library/lux/macro/local.lux index 4e762b81d..ef15fbe10 100644 --- a/stdlib/source/library/lux/macro/local.lux +++ b/stdlib/source/library/lux/macro/local.lux @@ -5,10 +5,9 @@ [abstract ["[0]" monad (.only do)]] [control + ["<>" parser] ["[0]" try (.only Try)] - ["[0]" exception (.only exception)] - ["<>" parser (.only) - ["<[0]>" code]]] + ["[0]" exception (.only exception)]] [data ["[0]" product] ["[0]" text] @@ -18,7 +17,8 @@ ["[0]" plist (.only PList)]]]]]] ["[0]" // (.only) [syntax (.only syntax)] - ["[1][0]" code]]) + ["[0]" code (.only) + ["<[1]>" \\parser]]]) (exception .public (unknown_module [module Text]) (exception.report @@ -106,7 +106,7 @@ seed meta.seed g!pop (//.symbol "pop") _ (.let [g!pop (is Symbol - ["" (//code.format g!pop)])] + ["" (code.format g!pop)])] (..push_one [g!pop (..pop_all (list#each product.left macros) g!pop)]))] (in (` ((~ g!pop)))))) diff --git a/stdlib/source/library/lux/macro/syntax.lux b/stdlib/source/library/lux/macro/syntax.lux index 897b778e5..380713ff0 100644 --- a/stdlib/source/library/lux/macro/syntax.lux +++ b/stdlib/source/library/lux/macro/syntax.lux @@ -5,10 +5,9 @@ [abstract ["[0]" monad (.only do)]] [control + ["<>" parser] ["[0]" maybe] - ["[0]" try] - ["<>" parser (.only) - ["</>" code (.only Parser)]]] + ["[0]" try]] [data ["[0]" text (.use "[1]#[0]" monoid)] [collection @@ -20,7 +19,8 @@ ["[0]" rev] ["[0]" frac]]]]] ["[0]" // (.only with_symbols) - ["[0]" code]] + ["[0]" code (.only) + ["</>" \\parser (.only Parser)]]] ["[0]" / ["[1][0]" export]]) diff --git a/stdlib/source/library/lux/macro/syntax/check.lux b/stdlib/source/library/lux/macro/syntax/check.lux index 6649a6864..7a4b6ac73 100644 --- a/stdlib/source/library/lux/macro/syntax/check.lux +++ b/stdlib/source/library/lux/macro/syntax/check.lux @@ -6,12 +6,12 @@ [equivalence (.only Equivalence)] [monad (.only do)]] [control - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["<>" parser]] [data ["[0]" product]] [macro - ["[0]" code]]]]) + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]]]]) (def extension "lux check") diff --git a/stdlib/source/library/lux/macro/syntax/declaration.lux b/stdlib/source/library/lux/macro/syntax/declaration.lux index c4cac1e99..dbb86e1ce 100644 --- a/stdlib/source/library/lux/macro/syntax/declaration.lux +++ b/stdlib/source/library/lux/macro/syntax/declaration.lux @@ -4,15 +4,15 @@ [abstract [equivalence (.only Equivalence)]] [control - ["<>" parser (.use "[1]#[0]" monad) - ["<[0]>" code (.only Parser)]]] + ["<>" parser (.use "[1]#[0]" monad)]] [data ["[0]" product] ["[0]" text] [collection ["[0]" list (.use "[1]#[0]" functor)]]] [macro - ["[0]" code]]]]) + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]]]]) (type .public Declaration (Record diff --git a/stdlib/source/library/lux/macro/syntax/definition.lux b/stdlib/source/library/lux/macro/syntax/definition.lux index eee400dfe..b93e0bd64 100644 --- a/stdlib/source/library/lux/macro/syntax/definition.lux +++ b/stdlib/source/library/lux/macro/syntax/definition.lux @@ -5,9 +5,8 @@ [equivalence (.only Equivalence)] [monad (.only do)]] [control - ["[0]" exception (.only exception)] - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["<>" parser] + ["[0]" exception (.only exception)]] [data ["[0]" sum] ["[0]" product] @@ -17,7 +16,8 @@ [collection ["[0]" list]]] ["[0]" macro (.only) - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]] ["[0]" meta (.only) ["[0]" location]]]] ["[0]" // (.only) diff --git a/stdlib/source/library/lux/macro/syntax/export.lux b/stdlib/source/library/lux/macro/syntax/export.lux index 1a80d36c1..e47b09750 100644 --- a/stdlib/source/library/lux/macro/syntax/export.lux +++ b/stdlib/source/library/lux/macro/syntax/export.lux @@ -4,10 +4,11 @@ [abstract [monad (.only do)]] [control - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["<>" parser]] [macro - ["^" pattern]]]]) + ["^" pattern] + ["[0]" code + ["<[1]>" \\parser (.only Parser)]]]]]) (def .public default_policy Code diff --git a/stdlib/source/library/lux/macro/syntax/input.lux b/stdlib/source/library/lux/macro/syntax/input.lux index b0022bc25..1354a9a54 100644 --- a/stdlib/source/library/lux/macro/syntax/input.lux +++ b/stdlib/source/library/lux/macro/syntax/input.lux @@ -4,14 +4,14 @@ [abstract [equivalence (.only Equivalence)]] [control - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["<>" parser]] [data ["[0]" product] [collection ["[0]" list (.use "[1]#[0]" monad)]]] [macro - ["[0]" code]]]]) + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]]]]) (type .public Input (Record diff --git a/stdlib/source/library/lux/macro/syntax/type/variable.lux b/stdlib/source/library/lux/macro/syntax/type/variable.lux index ada8766cb..2658572e6 100644 --- a/stdlib/source/library/lux/macro/syntax/type/variable.lux +++ b/stdlib/source/library/lux/macro/syntax/type/variable.lux @@ -3,13 +3,11 @@ [lux (.except) [abstract [equivalence (.only Equivalence)]] - [control - [parser - ["<[0]>" code (.only Parser)]]] [data ["[0]" text]] [macro - ["[0]" code]]]]) + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]]]]) (type .public Variable Text) diff --git a/stdlib/source/library/lux/macro/template.lux b/stdlib/source/library/lux/macro/template.lux index 834599518..68a37a237 100644 --- a/stdlib/source/library/lux/macro/template.lux +++ b/stdlib/source/library/lux/macro/template.lux @@ -5,10 +5,9 @@ [abstract ["[0]" monad (.only do)]] [control + ["<>" parser (.use "[1]#[0]" functor)] ["[0]" try (.only Try)] - ["[0]" exception (.only exception)] - ["<>" parser (.use "[1]#[0]" functor) - ["<[0]>" code (.only Parser)]]] + ["[0]" exception (.only exception)]] [data ["[0]" bit (.use "[1]#[0]" codec)] ["[0]" text] @@ -25,8 +24,9 @@ ["[0]" frac (.use "[1]#[0]" decimal)]]]]] ["[0]" // (.only) [syntax (.only syntax)] - ["[0]" code] - ["[0]" local]]) + ["[0]" local] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]]) (def .public spliced (syntax (_ [parts (<code>.tuple (<>.some <code>.any))]) diff --git a/stdlib/source/library/lux/math.lux b/stdlib/source/library/lux/math.lux index 6404b3343..63f2e931c 100644 --- a/stdlib/source/library/lux/math.lux +++ b/stdlib/source/library/lux/math.lux @@ -7,10 +7,9 @@ [abstract ["[0]" monad (.only do)]] [control + ["<>" parser] ["[0]" try (.only Try)] - ["[0]" exception (.only exception)] - ["<>" parser (.only) - ["<[0]>" code]]] + ["[0]" exception (.only exception)]] [data [text ["%" \\format]] @@ -18,7 +17,9 @@ ["[0]" list (.use "[1]#[0]" mix)]]] [macro [syntax (.only syntax)] - ["[0]" template]] + ["[0]" template] + ["[0]" code + ["<[1]>" \\parser]]] [tool [compiler ["[0]" phase (.use "[1]#[0]" monad)] diff --git a/stdlib/source/library/lux/math/infix.lux b/stdlib/source/library/lux/math/infix.lux index af6268977..01930c466 100644 --- a/stdlib/source/library/lux/math/infix.lux +++ b/stdlib/source/library/lux/math/infix.lux @@ -4,15 +4,15 @@ [abstract [monad (.only do)]] [control - ["<>" parser (.use "[1]#[0]" functor) - ["<[0]>" code (.only Parser)]]] + ["<>" parser (.use "[1]#[0]" functor)]] [data ["[0]" product] [collection ["[0]" list (.use "[1]#[0]" mix)]]] [macro [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]] [math [number ["n" nat] diff --git a/stdlib/source/library/lux/math/modular.lux b/stdlib/source/library/lux/math/modular.lux index 4fcb27d65..489f798ab 100644 --- a/stdlib/source/library/lux/math/modular.lux +++ b/stdlib/source/library/lux/math/modular.lux @@ -8,16 +8,16 @@ [codec (.only Codec)] [monad (.only do)]] [control + ["<>" parser] ["[0]" try (.only Try)] - ["[0]" exception (.only exception)] - ["<>" parser (.only) - ["<[0]>" code]]] + ["[0]" exception (.only exception)]] [data ["[0]" product] ["[0]" text (.use "[1]#[0]" monoid) ["<[1]>" \\parser (.only Parser)]]] [macro - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number ["i" int (.use "[1]#[0]" decimal)]]] diff --git a/stdlib/source/library/lux/math/modulus.lux b/stdlib/source/library/lux/math/modulus.lux index f22bb1d39..d440669ae 100644 --- a/stdlib/source/library/lux/math/modulus.lux +++ b/stdlib/source/library/lux/math/modulus.lux @@ -6,12 +6,11 @@ [monad (.only do)]] [control ["[0]" try (.only Try)] - ["[0]" exception (.only exception)] - [parser - ["<[0]>" code]]] + ["[0]" exception (.only exception)]] [macro [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number ["i" int]]] diff --git a/stdlib/source/library/lux/math/number/complex.lux b/stdlib/source/library/lux/math/number/complex.lux index 611d66066..d22ce8ad2 100644 --- a/stdlib/source/library/lux/math/number/complex.lux +++ b/stdlib/source/library/lux/math/number/complex.lux @@ -4,14 +4,15 @@ [abstract [equivalence (.only Equivalence)]] [control - ["[0]" maybe] - ["<>" parser (.only) - ["<[0]>" code]]] + ["<>" parser] + ["[0]" maybe]] [data [collection ["[0]" list (.use "[1]#[0]" functor)]]] [macro - [syntax (.only syntax)]] + [syntax (.only syntax)] + ["[0]" code + ["<[1]>" \\parser]]] [math [number ["f" frac] diff --git a/stdlib/source/library/lux/math/number/ratio.lux b/stdlib/source/library/lux/math/number/ratio.lux index 2e77616c6..6deac08f0 100644 --- a/stdlib/source/library/lux/math/number/ratio.lux +++ b/stdlib/source/library/lux/math/number/ratio.lux @@ -8,17 +8,17 @@ [codec (.only Codec)] [monad (.only do)]] [control + ["<>" parser] ["[0]" function] ["[0]" maybe] - ["[0]" try] - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["[0]" try]] [data ["[0]" product] ["[0]" text (.use "[1]#[0]" monoid)]] [macro [syntax (.only syntax)] - ["[0]" code]]]] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]]]] [// ["n" nat (.use "[1]#[0]" decimal)]]) diff --git a/stdlib/source/library/lux/meta/configuration.lux b/stdlib/source/library/lux/meta/configuration.lux index d52b60914..d0dea1e76 100644 --- a/stdlib/source/library/lux/meta/configuration.lux +++ b/stdlib/source/library/lux/meta/configuration.lux @@ -7,10 +7,9 @@ [monoid (.only Monoid)] [monad (.only do)]] [control + ["<>" parser] ["[0]" maybe (.use "[1]#[0]" functor)] - ["[0]" exception (.only exception)] - ["<>" parser (.only) - ["<[0]>" code]]] + ["[0]" exception (.only exception)]] [data ["[0]" text (.use "[1]#[0]" equivalence) ["%" \\format] @@ -21,7 +20,8 @@ ["/" plist]]]] [macro [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number (.only hex)]]]]) diff --git a/stdlib/source/library/lux/meta/version.lux b/stdlib/source/library/lux/meta/version.lux index da5d349bb..f7df8ac2f 100644 --- a/stdlib/source/library/lux/meta/version.lux +++ b/stdlib/source/library/lux/meta/version.lux @@ -5,16 +5,16 @@ [abstract [monad (.only do)]] [control - ["[0]" exception (.only exception)] - ["<>" parser (.only) - ["<[0]>" code]]] + ["<>" parser] + ["[0]" exception (.only exception)]] [data ["[0]" text (.use "[1]#[0]" equivalence)] [collection ["[0]" list (.use "[1]#[0]" mix)]]] [macro [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [tool [compiler [version (.only Version)]]]]]) diff --git a/stdlib/source/library/lux/program.lux b/stdlib/source/library/lux/program.lux index ca420eb9f..99fb1832e 100644 --- a/stdlib/source/library/lux/program.lux +++ b/stdlib/source/library/lux/program.lux @@ -9,11 +9,11 @@ [concurrency ["[0]" thread]] ["<>" parser (.only) - ["<[0]>" code] ["<[0]>" cli]]] [macro (.only with_symbols) [syntax (.only syntax)] - ["[0]" code]]]]) + ["[0]" code (.only) + ["<[1]>" \\parser]]]]]) (type Arguments (Variant diff --git a/stdlib/source/library/lux/static.lux b/stdlib/source/library/lux/static.lux index 53426b0f8..a473f8288 100644 --- a/stdlib/source/library/lux/static.lux +++ b/stdlib/source/library/lux/static.lux @@ -5,14 +5,14 @@ [abstract [monad (.only do)]] [control - ["<>" parser (.only) - ["<[0]>" code]]] + ["<>" parser]] [data [collection ["[0]" list (.use "[1]#[0]" functor mix)]]] [macro [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number (.only hex)] ["[0]" random (.only Random)]]]]) diff --git a/stdlib/source/library/lux/target/jvm/modifier.lux b/stdlib/source/library/lux/target/jvm/modifier.lux index 058027fab..ac45136d6 100644 --- a/stdlib/source/library/lux/target/jvm/modifier.lux +++ b/stdlib/source/library/lux/target/jvm/modifier.lux @@ -5,15 +5,15 @@ ["[0]" equivalence (.only Equivalence)] ["[0]" monoid (.only Monoid)]] [control - ["[0]" try] - ["<>" parser (.only) - ["<[0]>" code]]] + ["<>" parser] + ["[0]" try]] [data ["[0]" binary ["[1]F" \\format (.only Writer)]]] [macro (.only with_symbols) [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math ["[0]" number (.only hex) ["[0]" i64]]] diff --git a/stdlib/source/library/lux/target/lua.lux b/stdlib/source/library/lux/target/lua.lux index 635117c5e..f12cfbac6 100644 --- a/stdlib/source/library/lux/target/lua.lux +++ b/stdlib/source/library/lux/target/lua.lux @@ -7,9 +7,7 @@ [hash (.only Hash)] ["[0]" enum]] [control - ["[0]" pipe] - [parser - ["<[0]>" code]]] + ["[0]" pipe]] [data ["[0]" text (.only) ["%" \\format (.only format)]] @@ -18,7 +16,8 @@ [macro [syntax (.only syntax)] ["[0]" template] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number ["n" nat] diff --git a/stdlib/source/library/lux/target/php.lux b/stdlib/source/library/lux/target/php.lux index 99b0c1d3f..2ad1863b6 100644 --- a/stdlib/source/library/lux/target/php.lux +++ b/stdlib/source/library/lux/target/php.lux @@ -7,9 +7,7 @@ [hash (.only Hash)] ["[0]" enum]] [control - ["[0]" pipe] - [parser - ["<[0]>" code]]] + ["[0]" pipe]] [data ["[0]" text (.only) ["%" \\format (.only format)]] @@ -18,7 +16,8 @@ [macro [syntax (.only syntax)] ["[0]" template] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number ["n" nat] diff --git a/stdlib/source/library/lux/target/python.lux b/stdlib/source/library/lux/target/python.lux index 1ce2789e7..ddc601161 100644 --- a/stdlib/source/library/lux/target/python.lux +++ b/stdlib/source/library/lux/target/python.lux @@ -8,9 +8,7 @@ [hash (.only Hash)] ["[0]" enum]] [control - ["[0]" pipe] - [parser - ["<[0]>" code]]] + ["[0]" pipe]] [data ["[0]" text (.only) ["%" \\format (.only format)]] @@ -19,7 +17,8 @@ [macro [syntax (.only syntax)] ["[0]" template] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number ["n" nat] diff --git a/stdlib/source/library/lux/target/r.lux b/stdlib/source/library/lux/target/r.lux index 6ec808501..6d56eea58 100644 --- a/stdlib/source/library/lux/target/r.lux +++ b/stdlib/source/library/lux/target/r.lux @@ -4,9 +4,7 @@ [control ["[0]" pipe] ["[0]" function] - ["[0]" maybe (.use "[1]#[0]" functor)] - [parser - ["<[0]>" code]]] + ["[0]" maybe (.use "[1]#[0]" functor)]] [data ["[0]" text ["%" \\format (.only format)]] @@ -15,7 +13,8 @@ [macro [syntax (.only syntax)] ["[0]" template] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number ["f" frac]]] diff --git a/stdlib/source/library/lux/target/ruby.lux b/stdlib/source/library/lux/target/ruby.lux index 980307456..5a5f5af9d 100644 --- a/stdlib/source/library/lux/target/ruby.lux +++ b/stdlib/source/library/lux/target/ruby.lux @@ -7,9 +7,7 @@ [hash (.only Hash)] ["[0]" enum]] [control - ["[0]" pipe] - [parser - ["<[0]>" code]]] + ["[0]" pipe]] [data ["[0]" text (.only) ["%" \\format (.only format)]] @@ -18,7 +16,8 @@ [macro [syntax (.only syntax)] ["[0]" template] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number ["n" nat] diff --git a/stdlib/source/library/lux/test.lux b/stdlib/source/library/lux/test.lux index b7cdc5ca7..110675c5d 100644 --- a/stdlib/source/library/lux/test.lux +++ b/stdlib/source/library/lux/test.lux @@ -6,6 +6,7 @@ [abstract ["[0]" monad (.only do)]] [control + ["<>" parser] ["[0]" pipe] ["[0]" maybe] ["[0]" try] @@ -13,9 +14,7 @@ ["[0]" io] [concurrency ["[0]" atom (.only Atom)] - ["[0]" async (.only Async) (.use "[1]#[0]" monad)]] - ["<>" parser (.only) - ["<[0]>" code]]] + ["[0]" async (.only Async) (.use "[1]#[0]" monad)]]] [data ["[0]" product] ["[0]" text (.only) @@ -35,7 +34,8 @@ ["f" frac]]] [macro [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] ["[0]" meta (.only) ["[0]" symbol]] [world diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/analysis.lux b/stdlib/source/library/lux/tool/compiler/language/lux/analysis.lux index 81d6ccdf5..c3ccd43e9 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/analysis.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/analysis.lux @@ -9,9 +9,7 @@ ["[0]" function] ["[0]" maybe] ["[0]" try (.only Try)] - ["[0]" exception (.only Exception)] - [parser - ["<[0]>" code]]] + ["[0]" exception (.only Exception)]] [data ["[0]" product] ["[0]" bit (.use "[1]#[0]" equivalence)] @@ -20,7 +18,9 @@ [collection ["[0]" list (.use "[1]#[0]" functor mix)]]] [macro - [syntax (.only syntax)]] + [syntax (.only syntax)] + ["[0]" code + ["<[1]>" \\parser]]] [math [number ["n" nat] diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/common_lisp.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/common_lisp.lux index 5e7529857..377ce23c4 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/common_lisp.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/common_lisp.lux @@ -1,32 +1,10 @@ (.require [library - [lux (.except) - ["[0]" ffi] - [abstract - ["[0]" monad (.only do)]] - [control - ["<>" parser (.only) - ["<c>" code (.only Parser)]]] - [data - [collection - ["[0]" array (.only Array)] - ["[0]" dictionary] - ["[0]" list]]] - ["[0]" type (.only) - ["[0]" check]] - ["@" target - ["_" common_lisp]]]] - [// - ["/" lux (.only custom)] - [// - ["[0]" bundle] - [// - ["[0]" analysis - ["[1]/[0]" type]] - [// - ["[0]" analysis (.only Analysis Operation Phase Handler Bundle)] - [/// - ["[0]" phase]]]]]]) + [lux (.except)]] + [/// + ["[0]" bundle] + [/// + [analysis (.only Bundle)]]]) (def .public bundle Bundle diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/js.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/js.lux index af44a8272..102e5adcf 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/js.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/js.lux @@ -5,13 +5,15 @@ [abstract ["[0]" monad (.only do)]] [control - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["<>" parser]] [data [collection ["[0]" array] ["[0]" dictionary] ["[0]" list]]] + [macro + ["[0]" code + ["<[1]>" \\parser (.only Parser)]]] ["[0]" type (.only) ["[0]" check]] ["@" target (.only) diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/jvm.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/jvm.lux index 32ca3161d..16cb9e777 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/jvm.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/jvm.lux @@ -7,12 +7,11 @@ ["[0]" monad (.only do)] ["[0]" predicate]] [control + ["<>" parser] ["[0]" pipe] ["[0]" maybe (.use "[1]#[0]" functor)] ["[0]" try (.only Try) (.use "[1]#[0]" monad)] - ["[0]" exception (.only exception)] - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["[0]" exception (.only exception)]] [data [binary (.only Binary) ["[0]" \\format]] @@ -27,7 +26,9 @@ ["[0]" sequence]]] [macro ["^" pattern] - ["[0]" template]] + ["[0]" template] + ["[0]" code + ["<[1]>" \\parser (.only Parser)]]] [math [number ["n" nat] diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/lua.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/lua.lux index b507b7a15..3c0e4cc86 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/lua.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/lua.lux @@ -5,13 +5,15 @@ [abstract ["[0]" monad (.only do)]] [control - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["<>" parser]] [data [collection ["[0]" array] ["[0]" dictionary] ["[0]" list]]] + [macro + ["[0]" code + ["<[1]>" \\parser (.only Parser)]]] ["[0]" type (.only) ["[0]" check]] ["@" target (.only) diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux index 448735394..75e4e8516 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux @@ -4,11 +4,10 @@ [abstract ["[0]" monad (.only do)]] [control + ["<>" parser] ["[0]" maybe] ["[0]" try] - ["[0]" exception (.only exception)] - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["[0]" exception (.only exception)]] [data ["[0]" text (.only) ["%" \\format (.only format)]] @@ -16,7 +15,9 @@ ["[0]" list (.use "[1]#[0]" functor)] ["[0]" dictionary (.only Dictionary)]]] [macro - ["^" pattern]] + ["^" pattern] + ["[0]" code + ["<[1]>" \\parser (.only Parser)]]] [math [number ["n" nat]]] diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/php.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/php.lux index 27e096e18..3852d2b24 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/php.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/php.lux @@ -5,13 +5,15 @@ [abstract ["[0]" monad (.only do)]] [control - ["<>" parser (.only) - ["<c>" code (.only Parser)]]] + ["<>" parser]] [data [collection ["[0]" array (.only Array)] ["[0]" dictionary] ["[0]" list]]] + [macro + ["[0]" code + ["<[1]>" \\parser (.only Parser)]]] ["[0]" type (.only) ["[0]" check]] ["@" target (.only) @@ -31,7 +33,7 @@ (def array::new Handler (custom - [<c>.any + [<code>.any (function (_ extension phase archive lengthC) (<| analysis/type.with_var (function (_ [@var :var:])) @@ -44,7 +46,7 @@ (def array::length Handler (custom - [<c>.any + [<code>.any (function (_ extension phase archive arrayC) (<| analysis/type.with_var (function (_ [@var :var:])) @@ -57,7 +59,7 @@ (def array::read Handler (custom - [(<>.and <c>.any <c>.any) + [(<>.and <code>.any <code>.any) (function (_ extension phase archive [indexC arrayC]) (<| analysis/type.with_var (function (_ [@var :var:])) @@ -72,7 +74,7 @@ (def array::write Handler (custom - [(all <>.and <c>.any <c>.any <c>.any) + [(all <>.and <code>.any <code>.any <code>.any) (function (_ extension phase archive [indexC valueC arrayC]) (<| analysis/type.with_var (function (_ [@var :var:])) @@ -89,7 +91,7 @@ (def array::delete Handler (custom - [(all <>.and <c>.any <c>.any) + [(all <>.and <code>.any <code>.any) (function (_ extension phase archive [indexC arrayC]) (<| analysis/type.with_var (function (_ [@var :var:])) @@ -127,7 +129,7 @@ (def object::new Handler (custom - [(all <>.and <c>.text (<>.some <c>.any)) + [(all <>.and <code>.text (<>.some <code>.any)) (function (_ extension phase archive [constructor inputsC]) (do [! phase.monad] [inputsA (monad.each ! (|>> (phase archive) (analysis/type.with_type Any)) inputsC) @@ -137,7 +139,7 @@ (def object::get Handler (custom - [(all <>.and <c>.text <c>.any) + [(all <>.and <code>.text <code>.any) (function (_ extension phase archive [fieldC objectC]) (do phase.monad [objectA (analysis/type.with_type ..Object @@ -149,7 +151,7 @@ (def object::do Handler (custom - [(all <>.and <c>.text <c>.any (<>.some <c>.any)) + [(all <>.and <code>.text <code>.any (<>.some <code>.any)) (function (_ extension phase archive [methodC objectC inputsC]) (do [! phase.monad] [objectA (analysis/type.with_type ..Object @@ -174,7 +176,7 @@ (def php::constant Handler (custom - [<c>.text + [<code>.text (function (_ extension phase archive name) (do phase.monad [_ (analysis/type.infer Any)] @@ -183,7 +185,7 @@ (def php::apply Handler (custom - [(all <>.and <c>.any (<>.some <c>.any)) + [(all <>.and <code>.any (<>.some <code>.any)) (function (_ extension phase archive [abstractionC inputsC]) (do [! phase.monad] [abstractionA (analysis/type.with_type ..Function @@ -195,7 +197,7 @@ (def php::pack Handler (custom - [(all <>.and <c>.any <c>.any) + [(all <>.and <code>.any <code>.any) (function (_ extension phase archive [formatC dataC]) (do [! phase.monad] [formatA (analysis/type.with_type Text diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/python.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/python.lux index d44c8f5de..3c6e4b452 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/python.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/python.lux @@ -5,13 +5,15 @@ [abstract ["[0]" monad (.only do)]] [control - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["<>" parser]] [data [collection ["[0]" array] ["[0]" dictionary] ["[0]" list]]] + [macro + ["[0]" code + ["<[1]>" \\parser (.only Parser)]]] ["[0]" type (.only) ["[0]" check]] ["@" target (.only) diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/r.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/r.lux index c499e23d8..a53133555 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/r.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/r.lux @@ -5,13 +5,15 @@ [abstract ["[0]" monad (.only do)]] [control - ["<>" parser (.only) - ["<c>" code (.only Parser)]]] + ["<>" parser]] [data [collection ["[0]" array (.only Array)] ["[0]" dictionary] ["[0]" list]]] + [macro + ["[0]" code + ["<[1]>" \\parser (.only Parser)]]] ["[0]" type (.only) ["[0]" check]] ["@" target diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/ruby.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/ruby.lux index b43fb8c4f..3029aec9d 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/ruby.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/ruby.lux @@ -5,13 +5,15 @@ [abstract ["[0]" monad (.only do)]] [control - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["<>" parser]] [data [collection ["[0]" array] ["[0]" dictionary] ["[0]" list]]] + [macro + ["[0]" code + ["<[1]>" \\parser (.only Parser)]]] ["[0]" type (.only) ["[0]" check]] ["@" target (.only) diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/scheme.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/scheme.lux index 0220eb1f4..bf1493940 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/scheme.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/scheme.lux @@ -5,13 +5,15 @@ [abstract ["[0]" monad (.only do)]] [control - ["<>" parser (.only) - ["<c>" code (.only Parser)]]] + ["<>" parser]] [data [collection ["[0]" array (.only Array)] ["[0]" dictionary] ["[0]" list]]] + [macro + ["[0]" code + ["<[1]>" \\parser (.only Parser)]]] ["[0]" type (.only) ["[0]" check]] ["@" target (.only) @@ -31,7 +33,7 @@ (def array::new Handler (custom - [<c>.any + [<code>.any (function (_ extension phase archive lengthC) (<| analysis/type.with_var (function (_ [@var :var:])) @@ -44,7 +46,7 @@ (def array::length Handler (custom - [<c>.any + [<code>.any (function (_ extension phase archive arrayC) (<| analysis/type.with_var (function (_ [@var :var:])) @@ -57,7 +59,7 @@ (def array::read Handler (custom - [(<>.and <c>.any <c>.any) + [(<>.and <code>.any <code>.any) (function (_ extension phase archive [indexC arrayC]) (<| analysis/type.with_var (function (_ [@var :var:])) @@ -72,7 +74,7 @@ (def array::write Handler (custom - [(all <>.and <c>.any <c>.any <c>.any) + [(all <>.and <code>.any <code>.any <code>.any) (function (_ extension phase archive [indexC valueC arrayC]) (<| analysis/type.with_var (function (_ [@var :var:])) @@ -89,7 +91,7 @@ (def array::delete Handler (custom - [(all <>.and <c>.any <c>.any) + [(all <>.and <code>.any <code>.any) (function (_ extension phase archive [indexC arrayC]) (<| analysis/type.with_var (function (_ [@var :var:])) @@ -131,7 +133,7 @@ (def scheme::constant Handler (custom - [<c>.text + [<code>.text (function (_ extension phase archive name) (do phase.monad [_ (analysis/type.infer Any)] @@ -140,7 +142,7 @@ (def scheme::apply Handler (custom - [(all <>.and <c>.any (<>.some <c>.any)) + [(all <>.and <code>.any (<>.some <code>.any)) (function (_ extension phase archive [abstractionC inputsC]) (do [! phase.monad] [abstractionA (analysis/type.with_type ..Function diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/jvm.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/jvm.lux index e2833a6c1..05da344e7 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/jvm.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/jvm.lux @@ -5,11 +5,10 @@ [abstract ["[0]" monad (.only do)]] [control + ["<>" parser (.use "[1]#[0]" monad)] ["[0]" pipe] ["[0]" try (.only Try) (.use "[1]#[0]" functor)] - ["[0]" exception] - ["<>" parser (.use "[1]#[0]" monad) - ["<[0]>" code (.only Parser)]]] + ["[0]" exception]] [data ["[0]" product] [binary (.only Binary) @@ -24,7 +23,9 @@ ["[0]" set (.only Set)]]] [macro ["^" pattern] - ["[0]" template]] + ["[0]" template] + ["[0]" code + ["<[1]>" \\parser (.only Parser)]]] [math [number ["n" nat] diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/lux.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/lux.lux index 20f7aa448..0d02b109f 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/lux.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/lux.lux @@ -7,11 +7,10 @@ ["[0]" monad (.only do)]] [control [io (.only IO)] + ["<>" parser] ["[0]" maybe (.use "[1]#[0]" functor)] ["[0]" try] - ["[0]" exception (.only exception)] - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["[0]" exception (.only exception)]] [data ["[0]" binary] ["[0]" product] @@ -24,7 +23,8 @@ ["[0]" set (.only Set)]]] [macro ["^" pattern] - ["[0]" code]] + ["[0]" code + ["<[1]>" \\parser (.only Parser)]]] [math [number ["n" nat]]] diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp/runtime.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp/runtime.lux index 25e2a8d21..42c75531d 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp/runtime.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp/runtime.lux @@ -5,9 +5,8 @@ [abstract ["[0]" monad (.only do)]] [control - ["[0]" function] - ["<>" parser (.only) - ["<[0]>" code]]] + ["<>" parser] + ["[0]" function]] [data ["[0]" product] ["[0]" text (.use "[1]#[0]" hash) @@ -18,7 +17,8 @@ ["[0]" sequence]]] ["[0]" macro (.only) [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number (.only hex) ["[0]" i64]]] diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/extension.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/extension.lux index 5e96d3ec3..75cb5a86e 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/extension.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/extension.lux @@ -3,16 +3,14 @@ [lux (.except) [abstract ["[0]" monad (.only do)]] - [control - [parser - ["<[0]>" code]]] [data [collection ["[0]" list (.use "[1]#[0]" functor)]]] ["[0]" meta] ["[0]" macro (.only with_symbols) - ["[0]" code] - [syntax (.only syntax)]]]] + [syntax (.only syntax)] + ["[0]" code (.only) + ["<[1]>" \\parser]]]]] ["[0]" /// ["[1][0]" extension] [// diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/runtime.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/runtime.lux index 45ec51f44..3eaadc3f5 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/runtime.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/runtime.lux @@ -5,9 +5,8 @@ [abstract ["[0]" monad (.only do)]] [control - ["[0]" function] - ["<>" parser (.only) - ["<[0]>" code]]] + ["<>" parser] + ["[0]" function]] [data ["[0]" product] ["[0]" text (.use "[1]#[0]" hash) @@ -19,7 +18,8 @@ ["[0]" sequence]]] ["[0]" macro (.only) [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number (.only hex) ["[0]" i64]]] diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua/runtime.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua/runtime.lux index 1e9b333c4..f7fb63f10 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua/runtime.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua/runtime.lux @@ -5,9 +5,8 @@ [abstract ["[0]" monad (.only do)]] [control - ["[0]" function] - ["<>" parser (.only) - ["<[0]>" code]]] + ["<>" parser] + ["[0]" function]] [data ["[0]" product] ["[0]" text (.use "[1]#[0]" hash) @@ -19,7 +18,8 @@ ["[0]" sequence]]] ["[0]" macro (.only) [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number (.only hex) ["[0]" i64]]] diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/runtime.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/runtime.lux index c1867a620..1254f50bc 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/runtime.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/runtime.lux @@ -5,9 +5,8 @@ [abstract ["[0]" monad (.only do)]] [control - ["[0]" function] - ["<>" parser (.only) - ["<[0]>" code]]] + ["<>" parser] + ["[0]" function]] [data ["[0]" product] ["[0]" text (.use "[1]#[0]" hash) @@ -19,7 +18,8 @@ ["[0]" sequence]]] ["[0]" macro (.only) [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number (.only hex) ["[0]" i64]]] diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/runtime.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/runtime.lux index 40b7ebd56..dfef07d7c 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/runtime.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/runtime.lux @@ -4,9 +4,8 @@ [abstract ["[0]" monad (.only do)]] [control - ["[0]" function] - ["<>" parser (.only) - ["<[0]>" code]]] + ["<>" parser] + ["[0]" function]] [data ["[0]" product] ["[0]" text (.use "[1]#[0]" hash) @@ -18,7 +17,8 @@ ["[0]" sequence]]] ["[0]" macro (.only) [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number (.only hex) ["f" frac] diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/runtime.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/runtime.lux index 69fff57bc..089bdf2b9 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/runtime.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/runtime.lux @@ -5,9 +5,8 @@ [abstract ["[0]" monad (.only do)]] [control - ["[0]" function] - ["<>" parser (.only) - ["<[0]>" code]]] + ["<>" parser] + ["[0]" function]] [data ["[0]" product] ["[0]" text (.use "[1]#[0]" hash) @@ -19,7 +18,8 @@ ["[0]" sequence]]] ["[0]" macro (.only) [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number (.only hex) ["n" nat] diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/runtime.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/runtime.lux index 4754c861b..74261ccc3 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/runtime.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/runtime.lux @@ -5,9 +5,8 @@ [abstract ["[0]" monad (.only do)]] [control - ["[0]" function] - ["<>" parser (.only) - ["<[0]>" code]]] + ["<>" parser] + ["[0]" function]] [data ["[0]" product] ["[0]" text (.use "[1]#[0]" hash) @@ -19,7 +18,8 @@ ["[0]" sequence]]] ["[0]" macro (.only) [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number (.only hex) ["[0]" i64] diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/extension/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/extension/common.lux index bbb7db4e9..a99e83f84 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/extension/common.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/extension/common.lux @@ -3,9 +3,6 @@ [lux (.except) [abstract ["[0]" monad (.only do)]] - [control - [parser - ["<[0]>" code]]] [data ["[0]" product] ["[0]" text] @@ -15,8 +12,9 @@ ["[0]" list (.use "[1]#[0]" functor)] ["dict" dictionary (.only Dictionary)]]] ["[0]" macro (.only with_symbols) - ["[0]" code] - [syntax (.only syntax)]] + [syntax (.only syntax)] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [target ["_" scheme (.only Expression Computation)]]]] ["[0]" /// diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/runtime.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/runtime.lux index 35e49dc7e..0b287568a 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/runtime.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/runtime.lux @@ -5,9 +5,8 @@ [abstract ["[0]" monad (.only do)]] [control - ["[0]" function] - ["<>" parser (.only) - ["<[0]>" code]]] + ["<>" parser] + ["[0]" function]] [data ["[0]" product] ["[0]" text (.use "[1]#[0]" hash) @@ -19,7 +18,8 @@ ["[0]" sequence]]] ["[0]" macro (.only) [syntax (.only syntax)] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number (.only hex) ["[0]" i64]]] diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/syntax.lux b/stdlib/source/library/lux/tool/compiler/language/lux/syntax.lux index 1e1e062eb..7b31c9a0a 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/syntax.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/syntax.lux @@ -31,10 +31,9 @@ [abstract [monad (.only do)]] [control + ["<>" parser] ["[0]" maybe] - ["[0]" exception (.only exception)] - ["<>" parser (.only) - ["<[0]>" code]]] + ["[0]" exception (.only exception)]] [data ["[0]" text (.only) [\\parser (.only Offset)] @@ -44,7 +43,9 @@ ["[0]" dictionary (.only Dictionary)]]] [macro [syntax (.only syntax)] - ["[0]" template]] + ["[0]" template] + ["[0]" code + ["<[1]>" \\parser]]] [meta ["[0]" symbol]] [math diff --git a/stdlib/source/library/lux/type.lux b/stdlib/source/library/lux/type.lux index ac1e01df2..00afaddc0 100644 --- a/stdlib/source/library/lux/type.lux +++ b/stdlib/source/library/lux/type.lux @@ -6,10 +6,9 @@ [equivalence (.only Equivalence)] [monad (.only Monad do)]] [control + ["<>" parser] ["[0]" function] - ["[0]" maybe] - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["[0]" maybe]] [data ["[0]" product] ["[0]" text (.use "[1]#[0]" monoid equivalence)] @@ -19,7 +18,8 @@ ["[0]" macro (.only) [syntax (.only syntax)] ["^" pattern] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]] [math [number ["n" nat (.use "[1]#[0]" decimal)]]] diff --git a/stdlib/source/library/lux/type/dynamic.lux b/stdlib/source/library/lux/type/dynamic.lux index 9afa8f395..fd98afcdf 100644 --- a/stdlib/source/library/lux/type/dynamic.lux +++ b/stdlib/source/library/lux/type/dynamic.lux @@ -4,14 +4,14 @@ ["[0]" debug] [control ["[0]" try (.only Try)] - ["[0]" exception (.only exception)] - [parser - ["<[0]>" code]]] + ["[0]" exception (.only exception)]] [data [text ["%" \\format]]] [macro (.only with_symbols) - ["[0]" syntax (.only syntax)]] + ["[0]" syntax (.only syntax)] + ["[0]" code + ["<[1]>" \\parser]]] ["[0]" type (.only) ["[0]" primitive (.only primitive)]]]]) diff --git a/stdlib/source/library/lux/type/implicit.lux b/stdlib/source/library/lux/type/implicit.lux index 3b330f2c1..f831c551b 100644 --- a/stdlib/source/library/lux/type/implicit.lux +++ b/stdlib/source/library/lux/type/implicit.lux @@ -5,10 +5,9 @@ ["[0]" monad (.only do)] ["[0]" equivalence]] [control + ["<>" parser] ["[0]" maybe] - ["[0]" try] - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["[0]" try]] [data ["[0]" product] ["[0]" text (.use "[1]#[0]" equivalence) @@ -17,8 +16,9 @@ ["[0]" list (.use "[1]#[0]" monad mix)] ["[0]" dictionary (.only Dictionary)]]] ["[0]" macro (.only) - ["[0]" code] - [syntax (.only syntax)]] + [syntax (.only syntax)] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]] [math ["[0]" number (.only) ["n" nat]]] diff --git a/stdlib/source/library/lux/type/poly.lux b/stdlib/source/library/lux/type/poly.lux index 1555bfe9a..4f70bb937 100644 --- a/stdlib/source/library/lux/type/poly.lux +++ b/stdlib/source/library/lux/type/poly.lux @@ -2,14 +2,11 @@ [library [lux (.except) ["[0]" meta] - ["[0]" type] [abstract ["[0]" monad (.only do)]] [control - ["[0]" maybe] - ["<>" parser (.use "[1]#[0]" monad) - ["<[0]>" type (.only Env)] - ["<[0]>" code (.only Parser)]]] + ["<>" parser (.use "[1]#[0]" monad)] + ["[0]" maybe]] [data ["[0]" product] ["[0]" text] @@ -19,10 +16,13 @@ [macro (.only with_symbols) [syntax (.only syntax)] ["^" pattern] - ["[0]" code]] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]]] [math [number - ["n" nat]]]]]) + ["n" nat]]] + ["[0]" type (.only) + ["<[1]>" \\parser (.only Env)]]]]) (def .public polytypic (syntax (_ [name <code>.local diff --git a/stdlib/source/library/lux/type/primitive.lux b/stdlib/source/library/lux/type/primitive.lux index c7d4a147a..50c288e1c 100644 --- a/stdlib/source/library/lux/type/primitive.lux +++ b/stdlib/source/library/lux/type/primitive.lux @@ -5,16 +5,16 @@ [abstract [monad (.only do)]] [control - ["<>" parser (.use "[1]#[0]" monad) - ["<[0]>" code (.only Parser)]]] + ["<>" parser (.use "[1]#[0]" monad)]] [data ["[0]" text (.use "[1]#[0]" equivalence)] [collection ["[0]" list (.use "[1]#[0]" functor)]]] ["[0]" macro (.only) ["^" pattern] - ["[0]" code] ["[0]" context] + ["[0]" code (.only) + ["<[1]>" \\parser (.only Parser)]] [syntax (.only syntax) ["|[0]|" export]]] [meta diff --git a/stdlib/source/library/lux/type/quotient.lux b/stdlib/source/library/lux/type/quotient.lux index 8e96bfd3b..98292553c 100644 --- a/stdlib/source/library/lux/type/quotient.lux +++ b/stdlib/source/library/lux/type/quotient.lux @@ -3,11 +3,10 @@ [lux (.except type) [abstract [equivalence (only Equivalence)]] - [control - [parser - ["<[0]>" code]]] [macro (.only with_symbols) - [syntax (.only syntax)]] + [syntax (.only syntax)] + ["[0]" code + ["<[1]>" \\parser]]] ["[0]" type [primitive (.except)]]]]) diff --git a/stdlib/source/library/lux/type/refinement.lux b/stdlib/source/library/lux/type/refinement.lux index a4054407c..3a7a2ef85 100644 --- a/stdlib/source/library/lux/type/refinement.lux +++ b/stdlib/source/library/lux/type/refinement.lux @@ -3,11 +3,10 @@ [lux (.except only type) [abstract [predicate (.only Predicate)]] - [control - [parser - ["<[0]>" code]]] ["[0]" macro (.only) - [syntax (.only syntax)]] + [syntax (.only syntax)] + ["[0]" code + ["<[1]>" \\parser]]] ["[0]" type (.only) [primitive (.except)]]]]) diff --git a/stdlib/source/library/lux/type/resource.lux b/stdlib/source/library/lux/type/resource.lux index 6a35b1567..760f07dc2 100644 --- a/stdlib/source/library/lux/type/resource.lux +++ b/stdlib/source/library/lux/type/resource.lux @@ -6,10 +6,9 @@ ["[0]" monad (.only Monad do) [indexed (.only IxMonad)]]] [control + ["<>" parser] ["[0]" maybe] - ["[0]" exception (.only exception)] - ["<>" parser (.only) - ["<[0]>" code (.only Parser)]]] + ["[0]" exception (.only exception)]] [data [text ["%" \\format (.only format)]] @@ -18,7 +17,9 @@ ["[0]" sequence (.only Sequence)] ["[0]" list (.use "[1]#[0]" functor mix)]]] ["[0]" macro (.only) - [syntax (.only syntax)]] + [syntax (.only syntax)] + ["[0]" code + ["<[1]>" \\parser (.only Parser)]]] [math [number ["n" nat]]] diff --git a/stdlib/source/library/lux/type/unit.lux b/stdlib/source/library/lux/type/unit.lux index bcc8f672c..e7327e551 100644 --- a/stdlib/source/library/lux/type/unit.lux +++ b/stdlib/source/library/lux/type/unit.lux @@ -5,11 +5,10 @@ [equivalence (.only Equivalence)] [order (.only Order)] [enum (.only Enum)]] - [control - [parser - ["<[0]>" code]]] ["[0]" macro (.only) - [syntax (.only syntax)]] + [syntax (.only syntax)] + ["[0]" code + ["<[1]>" \\parser]]] [math [number ["i" int]]]]] diff --git a/stdlib/source/library/lux/type/unit/scale.lux b/stdlib/source/library/lux/type/unit/scale.lux index 9eacbb81b..e88ee83e8 100644 --- a/stdlib/source/library/lux/type/unit/scale.lux +++ b/stdlib/source/library/lux/type/unit/scale.lux @@ -1,11 +1,11 @@ (.require [library [lux (.except type) - [control - [parser - ["<[0]>" code]]] + [control] ["[0]" macro (.only) - [syntax (.only syntax)]] + [syntax (.only syntax)] + ["[0]" code + ["<[1]>" \\parser]]] [math [number ["i" int] diff --git a/stdlib/source/library/lux/world/net/http/client.lux b/stdlib/source/library/lux/world/net/http/client.lux index 832ff6f23..52812a399 100644 --- a/stdlib/source/library/lux/world/net/http/client.lux +++ b/stdlib/source/library/lux/world/net/http/client.lux @@ -11,9 +11,7 @@ ["[0]" maybe (.use "[1]#[0]" functor)] ["[0]" try (.only Try)] [concurrency - ["[0]" async (.only Async)]] - [parser - ["<[0]>" code]]] + ["[0]" async (.only Async)]]] [data ["[0]" binary (.only Binary)] ["[0]" text] @@ -21,8 +19,9 @@ ["[0]" dictionary]]] [macro [syntax (.only syntax)] - ["[0]" code] - ["[0]" template]] + ["[0]" template] + ["[0]" code (.only) + ["<[1]>" \\parser]]] [math [number ["n" nat] diff --git a/stdlib/source/library/lux/control/parser/code.lux b/stdlib/source/parser/lux/macro/code.lux index a73b18c55..85490e2d0 100644 --- a/stdlib/source/library/lux/control/parser/code.lux +++ b/stdlib/source/parser/lux/macro/code.lux @@ -4,6 +4,7 @@ [abstract ["[0]" monad (.only do)]] [control + ["//" parser] ["[0]" try (.only Try)]] [data ["[0]" bit] @@ -19,8 +20,7 @@ ["[0]" rev] ["[0]" frac]]] [meta - ["[0]" symbol]]]] - ["[0]" //]) + ["[0]" symbol]]]]) (def (un_paired pairs) (All (_ a) (-> (List [a a]) (List a))) diff --git a/stdlib/source/library/lux/control/parser/type.lux b/stdlib/source/parser/lux/type.lux index b4609b897..a107a1778 100644 --- a/stdlib/source/library/lux/control/parser/type.lux +++ b/stdlib/source/parser/lux/type.lux @@ -4,6 +4,7 @@ [abstract ["[0]" monad (.only do)]] [control + ["//" parser] ["[0]" try (.only Try)] ["[0]" exception (.only exception)] ["[0]" function]] @@ -20,8 +21,7 @@ [number ["n" nat (.use "[1]#[0]" decimal)]]] ["[0]" type (.use "[1]#[0]" equivalence) - ["[0]" check]]]] - ["[0]" //]) + ["[0]" check]]]]) (def |recursion_dummy| (template (|recursion_dummy|) |