diff options
Diffstat (limited to '')
162 files changed, 590 insertions, 469 deletions
diff --git a/stdlib/source/format/lux/data/text.lux b/stdlib/source/format/lux/data/text.lux index bae5e1263..af6e502b6 100644 --- a/stdlib/source/format/lux/data/text.lux +++ b/stdlib/source/format/lux/data/text.lux @@ -36,8 +36,8 @@ ["<[1]>" \\parser (.only Parser)]]] [meta ["[0]" location] - ["[0]" symbol]] - ["[0]" type]]]) + ["[0]" symbol] + ["[0]" type]]]]) (.type .public (Format a) (-> a Text)) diff --git a/stdlib/source/library/lux.lux b/stdlib/source/library/lux.lux index 439fb69e3..d142387b3 100644 --- a/stdlib/source/library/lux.lux +++ b/stdlib/source/library/lux.lux @@ -1326,9 +1326,9 @@ (p x))} xs)) -(def' .private (with_location location content) - (-> Location Code Code) - (let' [[module line column] location] +(def' .private (with_location content) + (-> Code Code) + (let' [[module line column] ..dummy_location] (tuple$ (list (tuple$ (list (text$ module) (nat$ line) (nat$ column))) content)))) @@ -1587,9 +1587,9 @@ (symbol$ [..prelude "List"])))] (form$ (list (text$ "lux type check") type expression)))) -(def' .private (untemplated_text location value) - (-> Location Text Code) - (with_location location (variant$ (list (symbol$ [..prelude "#Text"]) (text$ value))))) +(def' .private (untemplated_text value) + (-> Text Code) + (with_location (variant$ (list (symbol$ [..prelude "#Text"]) (text$ value))))) (def' .public UnQuote Type @@ -1902,7 +1902,7 @@ (do meta#monad [=elements (monad#each meta#monad (untemplated replace? subst) elements)] (in (untemplated_list =elements)))) - .let' [[_ output'] (with_location @composite (variant$ (list (symbol$ [..prelude tag]) output)))]] + .let' [[_ output'] (with_location (variant$ (list (symbol$ [..prelude tag]) output)))]] (in [@composite output']))) (def' .private untemplated_form @@ -1923,22 +1923,22 @@ (def' .private (untemplated replace? subst token) (-> Bit Text Code ($' Meta Code)) ({[_ [@token {#Bit value}]] - (meta#in (with_location @token (variant$ (list (symbol$ [..prelude "#Bit"]) (bit$ value))))) + (meta#in (with_location (variant$ (list (symbol$ [..prelude "#Bit"]) (bit$ value))))) [_ [@token {#Nat value}]] - (meta#in (with_location @token (variant$ (list (symbol$ [..prelude "#Nat"]) (nat$ value))))) + (meta#in (with_location (variant$ (list (symbol$ [..prelude "#Nat"]) (nat$ value))))) [_ [@token {#Int value}]] - (meta#in (with_location @token (variant$ (list (symbol$ [..prelude "#Int"]) (int$ value))))) + (meta#in (with_location (variant$ (list (symbol$ [..prelude "#Int"]) (int$ value))))) [_ [@token {#Rev value}]] - (meta#in (with_location @token (variant$ (list (symbol$ [..prelude "#Rev"]) (rev$ value))))) + (meta#in (with_location (variant$ (list (symbol$ [..prelude "#Rev"]) (rev$ value))))) [_ [@token {#Frac value}]] - (meta#in (with_location @token (variant$ (list (symbol$ [..prelude "#Frac"]) (frac$ value))))) + (meta#in (with_location (variant$ (list (symbol$ [..prelude "#Frac"]) (frac$ value))))) [_ [@token {#Text value}]] - (meta#in (untemplated_text @token value)) + (meta#in (untemplated_text value)) [#1 [@token {#Symbol [module name]}]] (do meta#monad @@ -1951,10 +1951,10 @@ (in [module name])} module) .let' [[module name] real_name]] - (meta#in (with_location @token (variant$ (list (symbol$ [..prelude "#Symbol"]) (tuple$ (list (text$ module) (text$ name)))))))) + (meta#in (with_location (variant$ (list (symbol$ [..prelude "#Symbol"]) (tuple$ (list (text$ module) (text$ name)))))))) [#0 [@token {#Symbol [module name]}]] - (meta#in (with_location @token (variant$ (list (symbol$ [..prelude "#Symbol"]) (tuple$ (list (text$ module) (text$ name))))))) + (meta#in (with_location (variant$ (list (symbol$ [..prelude "#Symbol"]) (tuple$ (list (text$ module) (text$ name))))))) [#1 [@composite {#Form {#Item [@symbol {#Symbol global}] parameters}}]] (do meta#monad @@ -2011,6 +2011,8 @@ (failure (wrong_syntax_error [..prelude "`"]))} tokens))) +(def' .public syntax_quote Macro `) + (def' .public `' Macro (macro (_ tokens) @@ -2023,6 +2025,8 @@ (failure (wrong_syntax_error [..prelude "`'"]))} tokens))) +(def' .public partial_quote Macro `') + (def' .public ' Macro (macro (_ tokens) @@ -2035,6 +2039,8 @@ (failure (wrong_syntax_error [..prelude "'"]))} tokens))) +(def' .public literal_quote Macro ') + (def' .public ~ UnQuote (..unquote @@ -2048,6 +2054,8 @@ (failure (wrong_syntax_error [..prelude "~"]))} tokens)))) +(def' .public but UnQuote ~) + (def' .public ~! UnQuote (..unquote @@ -2056,15 +2064,17 @@ (do meta#monad [current_module ..current_module_name independent (untemplated #1 current_module [@token dependent])] - (in (list (with_location @token (variant$ (list (symbol$ [..prelude "#Form"]) - (untemplated_list (list (untemplated_text dummy_location "lux in-module") - (untemplated_text dummy_location current_module) - independent)))))))) + (in (list (with_location (variant$ (list (symbol$ [..prelude "#Form"]) + (untemplated_list (list (untemplated_text "lux in-module") + (untemplated_text current_module) + independent)))))))) _ (failure (wrong_syntax_error [..prelude "~!"]))} tokens)))) +(def' .public specifically UnQuote ~!) + (def' .public ~' UnQuote (..unquote @@ -2079,6 +2089,8 @@ (failure (wrong_syntax_error [..prelude "~'"]))} tokens)))) +(def' .public literally UnQuote ~') + (def' .public ~+ Spliced_UnQuote (let' [g!list#composite (form$ (list (text$ "lux in-module") @@ -2093,6 +2105,8 @@ (failure (wrong_syntax_error [..prelude "~+"]))} tokens))))) +(def' .public also Spliced_UnQuote ~+) + (def' .public |> Macro (macro (_ tokens) diff --git a/stdlib/source/library/lux/control/concatenative.lux b/stdlib/source/library/lux/control/concatenative.lux index 4e900a860..3a24dedfc 100644 --- a/stdlib/source/library/lux/control/concatenative.lux +++ b/stdlib/source/library/lux/control/concatenative.lux @@ -1,8 +1,6 @@ (.require [library [lux (.except Alias if loop left right) - ["[0]" meta] - ["[0]" type] [abstract ["[0]" monad]] [control @@ -23,7 +21,9 @@ ["n" nat] ["i" int] ["r" rev] - ["f" frac]]]]] + ["f" frac]]] + ["[0]" meta (.only) + ["[0]" type]]]] [// ["<>" parser (.use "[1]#[0]" monad)]]) diff --git a/stdlib/source/library/lux/control/concurrency/actor.lux b/stdlib/source/library/lux/control/concurrency/actor.lux index ce8daea6a..f6141f32d 100644 --- a/stdlib/source/library/lux/control/concurrency/actor.lux +++ b/stdlib/source/library/lux/control/concurrency/actor.lux @@ -13,8 +13,9 @@ ["[0]" product]] [macro ["[0]" local]] - [type (.only sharing) - [primitive (.only primitive representation abstraction)]]]] + [meta + [type (.only sharing) + [primitive (.only primitive representation abstraction)]]]]] [// ["[0]" atom (.only Atom atom)] ["[0]" async (.only Async Resolver)] diff --git a/stdlib/source/library/lux/control/concurrency/async.lux b/stdlib/source/library/lux/control/concurrency/async.lux index 40b2760b0..0098f0f1b 100644 --- a/stdlib/source/library/lux/control/concurrency/async.lux +++ b/stdlib/source/library/lux/control/concurrency/async.lux @@ -14,9 +14,10 @@ ["[0]" product]] [macro ["^" pattern]] - [type (.only sharing) - [primitive (.except)] - ["[0]" variance (.only Mutable)]]]] + [meta + [type (.only sharing) + [primitive (.except)] + ["[0]" variance (.only Mutable)]]]]] [// ["[0]" thread] ["[0]" atom (.only Atom atom)]]) diff --git a/stdlib/source/library/lux/control/concurrency/atom.lux b/stdlib/source/library/lux/control/concurrency/atom.lux index 65a981c44..3c81d2841 100644 --- a/stdlib/source/library/lux/control/concurrency/atom.lux +++ b/stdlib/source/library/lux/control/concurrency/atom.lux @@ -13,9 +13,10 @@ [collection ["[0]" array ["[1]" \\unsafe]]]] - [type - [primitive (.except)] - ["[0]" variance (.only Mutable)]]]]) + [meta + [type + [primitive (.except)] + ["[0]" variance (.only Mutable)]]]]]) (with_expansions [<jvm> (these (ffi.import (java/util/concurrent/atomic/AtomicReference a) "[1]::[0]" diff --git a/stdlib/source/library/lux/control/concurrency/frp.lux b/stdlib/source/library/lux/control/concurrency/frp.lux index 3cf496cf1..1311d9b3d 100644 --- a/stdlib/source/library/lux/control/concurrency/frp.lux +++ b/stdlib/source/library/lux/control/concurrency/frp.lux @@ -11,8 +11,9 @@ ["[0]" try (.only Try)] ["[0]" exception (.only exception)] ["[0]" io (.only IO io)]] - [type (.only sharing) - ["[0]" variance (.only Mutable)]]]] + [meta + [type (.only sharing) + ["[0]" variance (.only Mutable)]]]]] [// ["[0]" atom (.only Atom)] ["[0]" async (.only Async Async') (.use "[1]#[0]" monad)]]) diff --git a/stdlib/source/library/lux/control/concurrency/semaphore.lux b/stdlib/source/library/lux/control/concurrency/semaphore.lux index db74c0728..2b6b0692f 100644 --- a/stdlib/source/library/lux/control/concurrency/semaphore.lux +++ b/stdlib/source/library/lux/control/concurrency/semaphore.lux @@ -17,9 +17,10 @@ [number ["n" nat] ["i" int]]] - [type - ["[0]" primitive (.except)] - ["[0]" refinement]]]] + [meta + [type + ["[0]" primitive (.except)] + ["[0]" refinement]]]]] [// ["[0]" atom (.only Atom)] ["[0]" async (.only Async Resolver)]]) diff --git a/stdlib/source/library/lux/control/concurrency/stm.lux b/stdlib/source/library/lux/control/concurrency/stm.lux index 3dfeeec5c..3beedf568 100644 --- a/stdlib/source/library/lux/control/concurrency/stm.lux +++ b/stdlib/source/library/lux/control/concurrency/stm.lux @@ -15,9 +15,10 @@ ["[0]" list]]] [macro ["^" pattern]] - [type (.only sharing) - [primitive (.except)] - ["[0]" variance (.only Mutable)]]]] + [meta + [type (.only sharing) + [primitive (.except)] + ["[0]" variance (.only Mutable)]]]]] [// ["[0]" atom (.only Atom atom)] ["[0]" async (.only Async Resolver)] diff --git a/stdlib/source/library/lux/control/function/memo.lux b/stdlib/source/library/lux/control/function/memo.lux index f39cb33e3..3328720e2 100644 --- a/stdlib/source/library/lux/control/function/memo.lux +++ b/stdlib/source/library/lux/control/function/memo.lux @@ -4,7 +4,6 @@ (.require [library [lux (.except open) - ["[0]" type] [abstract [hash (.only Hash)] [monad (.only do)]] @@ -13,7 +12,9 @@ [data ["[0]" product] [collection - ["[0]" dictionary (.only Dictionary)]]]]] + ["[0]" dictionary (.only Dictionary)]]] + [meta + ["[0]" type]]]] ["[0]" // ["[1]" mixin (.only Mixin Recursive)]]) diff --git a/stdlib/source/library/lux/control/io.lux b/stdlib/source/library/lux/control/io.lux index 609814844..13eda4b75 100644 --- a/stdlib/source/library/lux/control/io.lux +++ b/stdlib/source/library/lux/control/io.lux @@ -5,13 +5,14 @@ [functor (.only Functor)] [apply (.only Apply)] [monad (.only Monad do)]] - [type - [primitive (.except)]] [macro (.only with_symbols) [syntax (.only syntax)] ["[0]" template] ["[0]" code - ["<[1]>" \\parser]]]]]) + ["<[1]>" \\parser]]] + [meta + [type + [primitive (.except)]]]]]) (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 b20711ba7..d2bf0531f 100644 --- a/stdlib/source/library/lux/control/lazy.lux +++ b/stdlib/source/library/lux/control/lazy.lux @@ -14,8 +14,9 @@ [syntax (.only syntax)] ["[0]" code ["<[1]>" \\parser]]] - [type (.only sharing) - [primitive (.except)]]]]) + [meta + [type (.only sharing) + [primitive (.except)]]]]]) (primitive .public (Lazy a) (-> [] a) diff --git a/stdlib/source/library/lux/control/security/capability.lux b/stdlib/source/library/lux/control/security/capability.lux index 96813f726..90a503c3a 100644 --- a/stdlib/source/library/lux/control/security/capability.lux +++ b/stdlib/source/library/lux/control/security/capability.lux @@ -13,8 +13,9 @@ ["%" \\format (.only format)]] [collection ["[0]" list (.use "[1]#[0]" functor)]]] - [type - [primitive (.except)]] + [meta + [type + [primitive (.except)]]] ["[0]" meta] ["[0]" macro (.only) ["[0]" code (.only) diff --git a/stdlib/source/library/lux/control/security/policy.lux b/stdlib/source/library/lux/control/security/policy.lux index 963f0377f..2aa55af59 100644 --- a/stdlib/source/library/lux/control/security/policy.lux +++ b/stdlib/source/library/lux/control/security/policy.lux @@ -5,8 +5,9 @@ [functor (.only Functor)] [apply (.only Apply)] [monad (.only Monad)]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (primitive .public (Policy brand value label) value diff --git a/stdlib/source/library/lux/control/thread.lux b/stdlib/source/library/lux/control/thread.lux index 69591de05..0b43c9344 100644 --- a/stdlib/source/library/lux/control/thread.lux +++ b/stdlib/source/library/lux/control/thread.lux @@ -12,9 +12,10 @@ [collection ["[0]" array ["[1]" \\unsafe (.only Array)]]]] - [type - [primitive (.except)] - ["[0]" variance (.only Mutable)]]]]) + [meta + [type + [primitive (.except)] + ["[0]" variance (.only Mutable)]]]]]) (type .public (Thread ! a) (-> ! a)) diff --git a/stdlib/source/library/lux/data/collection/array.lux b/stdlib/source/library/lux/data/collection/array.lux index 06704ae38..40e8c6599 100644 --- a/stdlib/source/library/lux/data/collection/array.lux +++ b/stdlib/source/library/lux/data/collection/array.lux @@ -12,8 +12,9 @@ [data [collection ["[0]" list]]] - [type - [variance (.only)]]]] + [meta + [type + [variance (.only)]]]]] ["!" \\unsafe]) (def .public type_name diff --git a/stdlib/source/library/lux/data/collection/queue/priority.lux b/stdlib/source/library/lux/data/collection/queue/priority.lux index c860daae8..0d02d0a09 100644 --- a/stdlib/source/library/lux/data/collection/queue/priority.lux +++ b/stdlib/source/library/lux/data/collection/queue/priority.lux @@ -13,8 +13,9 @@ [math [number ["n" nat (.use "[1]#[0]" interval)]]] - [type (.only by_example) - [primitive (.only primitive abstraction representation)]]]]) + [meta + [type (.only by_example) + [primitive (.only primitive abstraction representation)]]]]]) (type .public Priority Nat) diff --git a/stdlib/source/library/lux/data/collection/set/multi.lux b/stdlib/source/library/lux/data/collection/set/multi.lux index 82c89f817..0b0f1735e 100644 --- a/stdlib/source/library/lux/data/collection/set/multi.lux +++ b/stdlib/source/library/lux/data/collection/set/multi.lux @@ -13,8 +13,9 @@ [math [number ["n" nat]]] - [type - ["[0]" primitive (.only primitive abstraction representation)]]]] + [meta + [type + ["[0]" primitive (.only primitive abstraction representation)]]]]] ["[0]" // (.only) [// ["[0]" list (.use "[1]#[0]" mix monoid)] diff --git a/stdlib/source/library/lux/data/collection/set/ordered.lux b/stdlib/source/library/lux/data/collection/set/ordered.lux index f24c059bd..dc209c092 100644 --- a/stdlib/source/library/lux/data/collection/set/ordered.lux +++ b/stdlib/source/library/lux/data/collection/set/ordered.lux @@ -9,8 +9,9 @@ ["[0]" list (.use "[1]#[0]" mix)] [dictionary ["/" ordered]]]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (primitive .public (Set a) (/.Dictionary a a) diff --git a/stdlib/source/library/lux/data/collection/stack.lux b/stdlib/source/library/lux/data/collection/stack.lux index 726cdada0..c53ba235a 100644 --- a/stdlib/source/library/lux/data/collection/stack.lux +++ b/stdlib/source/library/lux/data/collection/stack.lux @@ -7,8 +7,9 @@ [data [collection ["//" list]]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (primitive .public (Stack a) (List a) diff --git a/stdlib/source/library/lux/data/collection/tree/finger.lux b/stdlib/source/library/lux/data/collection/tree/finger.lux index 72ef03d8e..b8a654516 100644 --- a/stdlib/source/library/lux/data/collection/tree/finger.lux +++ b/stdlib/source/library/lux/data/collection/tree/finger.lux @@ -9,8 +9,9 @@ [data [collection ["[0]" list (.use "[1]#[0]" monoid)]]] - [type - [primitive (.only primitive abstraction representation)]]]]) + [meta + [type + [primitive (.only primitive abstraction representation)]]]]]) ... https://en.wikipedia.org/wiki/Finger_tree (primitive .public (Tree @ t v) diff --git a/stdlib/source/library/lux/data/color.lux b/stdlib/source/library/lux/data/color.lux index de3ee1d99..bbccf6b7b 100644 --- a/stdlib/source/library/lux/data/color.lux +++ b/stdlib/source/library/lux/data/color.lux @@ -15,8 +15,9 @@ ["[0]" int] ["[0]" rev (.use "[1]#[0]" interval)] ["[0]" i64]]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (def rgb_limit 256) (def top (-- rgb_limit)) diff --git a/stdlib/source/library/lux/data/format/css.lux b/stdlib/source/library/lux/data/format/css.lux index 30e9c4153..80b0623cd 100644 --- a/stdlib/source/library/lux/data/format/css.lux +++ b/stdlib/source/library/lux/data/format/css.lux @@ -12,8 +12,9 @@ [math [number ["[0]" nat]]] - [type - [primitive (.except Frame pattern)]] + [meta + [type + [primitive (.except Frame pattern)]]] [world [net (.only URL)]]]] ["[0]" / diff --git a/stdlib/source/library/lux/data/format/css/class.lux b/stdlib/source/library/lux/data/format/css/class.lux index a2aa3d00d..95ecbb9dc 100644 --- a/stdlib/source/library/lux/data/format/css/class.lux +++ b/stdlib/source/library/lux/data/format/css/class.lux @@ -10,8 +10,9 @@ [macro [syntax (.only syntax)] ["[0]" code]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (primitive .public Class Text diff --git a/stdlib/source/library/lux/data/format/css/id.lux b/stdlib/source/library/lux/data/format/css/id.lux index 7d833ca6c..d4ce16d6a 100644 --- a/stdlib/source/library/lux/data/format/css/id.lux +++ b/stdlib/source/library/lux/data/format/css/id.lux @@ -10,8 +10,9 @@ [macro [syntax (.only syntax)] ["[0]" code]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (primitive .public ID Text diff --git a/stdlib/source/library/lux/data/format/css/property.lux b/stdlib/source/library/lux/data/format/css/property.lux index 6d4413240..089e117c2 100644 --- a/stdlib/source/library/lux/data/format/css/property.lux +++ b/stdlib/source/library/lux/data/format/css/property.lux @@ -6,12 +6,13 @@ ["s" code]]] [data ["[0]" text]] - [type - [primitive (.except)]] [macro + [syntax (.only syntax)] ["[0]" template] - ["[0]" code] - [syntax (.only syntax)]]]] + ["[0]" code]] + [meta + [type + [primitive (.except)]]]]] [// [value (.only All Number diff --git a/stdlib/source/library/lux/data/format/css/query.lux b/stdlib/source/library/lux/data/format/css/query.lux index cce106c61..ec39e8425 100644 --- a/stdlib/source/library/lux/data/format/css/query.lux +++ b/stdlib/source/library/lux/data/format/css/query.lux @@ -11,8 +11,9 @@ ["[0]" template] ["[0]" code] [syntax (.only syntax)]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" // ["[1][0]" value (.only Value Length Count Resolution Ratio Orientation Scan Boolean Update diff --git a/stdlib/source/library/lux/data/format/css/selector.lux b/stdlib/source/library/lux/data/format/css/selector.lux index 5993f5c89..1e8d3e0b9 100644 --- a/stdlib/source/library/lux/data/format/css/selector.lux +++ b/stdlib/source/library/lux/data/format/css/selector.lux @@ -8,10 +8,11 @@ [math [number ["i" int]]] - [type - [primitive (.except)]] [macro - ["[0]" template]]]] + ["[0]" template]] + [meta + [type + [primitive (.except)]]]]] ["[0]" // ["[1][0]" id (.only ID)] ["[1][0]" class (.only Class)]]) diff --git a/stdlib/source/library/lux/data/format/css/style.lux b/stdlib/source/library/lux/data/format/css/style.lux index 1f055636f..4e459fd17 100644 --- a/stdlib/source/library/lux/data/format/css/style.lux +++ b/stdlib/source/library/lux/data/format/css/style.lux @@ -6,8 +6,9 @@ ["%" \\format (.only format)]] [collection ["[0]" list (.use "[1]#[0]" mix)]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" // ["[1][0]" value (.only Value)] ["[1][0]" property (.only Property)]]) diff --git a/stdlib/source/library/lux/data/format/css/value.lux b/stdlib/source/library/lux/data/format/css/value.lux index 6dab6619e..14d2a2cec 100644 --- a/stdlib/source/library/lux/data/format/css/value.lux +++ b/stdlib/source/library/lux/data/format/css/value.lux @@ -21,8 +21,9 @@ ["i" int] ["r" rev] ["f" frac]]] - [type - [primitive (.except)]] + [meta + [type + [primitive (.except)]]] [world [net (.only URL)]]]] [// diff --git a/stdlib/source/library/lux/data/format/html.lux b/stdlib/source/library/lux/data/format/html.lux index f27ec9173..d6560ccfe 100644 --- a/stdlib/source/library/lux/data/format/html.lux +++ b/stdlib/source/library/lux/data/format/html.lux @@ -12,10 +12,11 @@ ["[0]" list (.use "[1]#[0]" functor mix)]]] [macro ["[0]" template]] + [meta + [type + [primitive (.except)]]] [target ["[0]" js]] - [type - [primitive (.except)]] [world [net (.only URL)]]]] [// diff --git a/stdlib/source/library/lux/data/format/markdown.lux b/stdlib/source/library/lux/data/format/markdown.lux index 21843dd90..ad8a20186 100644 --- a/stdlib/source/library/lux/data/format/markdown.lux +++ b/stdlib/source/library/lux/data/format/markdown.lux @@ -6,10 +6,11 @@ ["%" \\format (.only format)]] [collection ["[0]" list (.use "[1]#[0]" functor)]]] - [type - [primitive (.except)]] [world - [net (.only URL)]]]]) + [net (.only URL)]] + [meta + [type + [primitive (.except)]]]]]) ... https://www.markdownguide.org/basic-syntax/ diff --git a/stdlib/source/library/lux/data/format/tar.lux b/stdlib/source/library/lux/data/format/tar.lux index 07c493b97..e0ed3924f 100644 --- a/stdlib/source/library/lux/data/format/tar.lux +++ b/stdlib/source/library/lux/data/format/tar.lux @@ -35,8 +35,9 @@ ["[0]" duration]] [world ["[0]" file]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (type Size Nat) diff --git a/stdlib/source/library/lux/data/text/buffer.lux b/stdlib/source/library/lux/data/text/buffer.lux index fbb58c96f..e8b4e496f 100644 --- a/stdlib/source/library/lux/data/text/buffer.lux +++ b/stdlib/source/library/lux/data/text/buffer.lux @@ -15,8 +15,9 @@ [math [number ["n" nat]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" //]) (with_expansions [<jvm> (these (import java/lang/CharSequence diff --git a/stdlib/source/library/lux/data/text/encoding.lux b/stdlib/source/library/lux/data/text/encoding.lux index 836fc8a49..25b91cfc0 100644 --- a/stdlib/source/library/lux/data/text/encoding.lux +++ b/stdlib/source/library/lux/data/text/encoding.lux @@ -3,8 +3,9 @@ [lux (.except) [macro ["[0]" template]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) ... https://en.wikipedia.org/wiki/Character_encoding#Common_character_encodings (primitive .public Encoding diff --git a/stdlib/source/library/lux/data/text/unicode/block.lux b/stdlib/source/library/lux/data/text/unicode/block.lux index c08d296e4..bb61c05be 100644 --- a/stdlib/source/library/lux/data/text/unicode/block.lux +++ b/stdlib/source/library/lux/data/text/unicode/block.lux @@ -10,8 +10,9 @@ [number (.only hex) ["n" nat (.use "[1]#[0]" interval)] ["[0]" i64]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] [/// (.only Char)]) (primitive .public Block diff --git a/stdlib/source/library/lux/data/text/unicode/set.lux b/stdlib/source/library/lux/data/text/unicode/set.lux index 961b597ef..13c5d4f47 100644 --- a/stdlib/source/library/lux/data/text/unicode/set.lux +++ b/stdlib/source/library/lux/data/text/unicode/set.lux @@ -9,8 +9,9 @@ ["[0]" set (.use "[1]#[0]" equivalence)] ["[0]" tree ["[1]" finger (.only Tree)]]]] - [type (.only by_example) - [primitive (.except)]]]] + [meta + [type (.only by_example) + [primitive (.except)]]]]] ["[0]" / ["/[1]" // [// (.only Char)] diff --git a/stdlib/source/library/lux/data/trace.lux b/stdlib/source/library/lux/data/trace.lux index e7032aef1..af741e922 100644 --- a/stdlib/source/library/lux/data/trace.lux +++ b/stdlib/source/library/lux/data/trace.lux @@ -4,8 +4,7 @@ [abstract ["[0]" monoid (.only Monoid)] [functor (.only Functor)] - comonad] - function]]) + comonad]]]) (type .public (Trace t a) (Record diff --git a/stdlib/source/library/lux/debug.lux b/stdlib/source/library/lux/debug.lux index fa9e36cff..78160f4cd 100644 --- a/stdlib/source/library/lux/debug.lux +++ b/stdlib/source/library/lux/debug.lux @@ -39,8 +39,9 @@ [date (.only Date)] [month (.only Month)] [day (.only Day)]] - ["[0]" type (.only) - ["<[1]>" \\parser (.only Parser)]]]]) + [meta + ["[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 2fd1b2bdf..3f7df3b4e 100644 --- a/stdlib/source/library/lux/documentation.lux +++ b/stdlib/source/library/lux/documentation.lux @@ -1,8 +1,6 @@ (.require [library [lux (.except Definition Module type) - ["[0]" meta] - ["[0]" type (.use "[1]#[0]" equivalence)] [abstract [monad (.only do)] ["[0]" enum]] @@ -29,6 +27,8 @@ [math [number ["n" nat]]] + ["[0]" meta (.only) + ["[0]" type (.use "[1]#[0]" equivalence)]] [tool [compiler [language diff --git a/stdlib/source/library/lux/ffi.jvm.lux b/stdlib/source/library/lux/ffi.jvm.lux index a31b1df99..69090b80f 100644 --- a/stdlib/source/library/lux/ffi.jvm.lux +++ b/stdlib/source/library/lux/ffi.jvm.lux @@ -40,8 +40,9 @@ ["[0]" signature] ["[0]" reflection] ["[0]" parser]]]] - ["[0]" type (.use "[1]#[0]" equivalence) - ["[0]" check]]]]) + [meta + ["[0]" type (.use "[1]#[0]" equivalence) + ["[0]" check]]]]]) (def internal (-> External Text) diff --git a/stdlib/source/library/lux/ffi.lux b/stdlib/source/library/lux/ffi.lux index 103d2babd..44e4e685e 100644 --- a/stdlib/source/library/lux/ffi.lux +++ b/stdlib/source/library/lux/ffi.lux @@ -22,8 +22,9 @@ ["<[1]>" \\parser (.only Parser)]]] ["@" target (.only) ["[0]" js]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (with_expansions [<constant> (for @.js "js constant" @.python "python constant" diff --git a/stdlib/source/library/lux/ffi.old.lux b/stdlib/source/library/lux/ffi.old.lux index a199b5012..f713ebf1c 100644 --- a/stdlib/source/library/lux/ffi.old.lux +++ b/stdlib/source/library/lux/ffi.old.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except is as type) - ["[0]" type (.use "[1]#[0]" equivalence)] [abstract ["[0]" monad (.only Monad do)] ["[0]" enum]] @@ -25,7 +24,8 @@ ["[0]" template] ["[0]" code (.only) ["<[1]>" \\parser (.only Parser)]]] - ["[0]" meta]]]) + ["[0]" meta (.only) + ["[0]" type (.use "[1]#[0]" equivalence)]]]]) (with_template [<name> <op> <from> <to>] [(def .public (<name> value) diff --git a/stdlib/source/library/lux/ffi.php.lux b/stdlib/source/library/lux/ffi.php.lux index f5f357021..a720cc6f1 100644 --- a/stdlib/source/library/lux/ffi.php.lux +++ b/stdlib/source/library/lux/ffi.php.lux @@ -2,7 +2,6 @@ [library [lux (.except Alias) ["@" target] - ["[0]" meta] [abstract [monad (.only do)]] [control @@ -15,13 +14,14 @@ ["%" \\format]] [collection ["[0]" list (.use "[1]#[0]" functor)]]] - [type - abstract] [macro (.only with_symbols) [syntax (.only syntax)] ["[0]" template] ["[0]" code (.only) - ["<[1]>" \\parser (.only Parser)]]]]]) + ["<[1]>" \\parser (.only Parser)]]] + ["[0]" meta (.only) + [type + abstract]]]]) (primitive .public (Object brand) Any) diff --git a/stdlib/source/library/lux/ffi.scm.lux b/stdlib/source/library/lux/ffi.scm.lux index 27f8c4f4f..679a9b58e 100644 --- a/stdlib/source/library/lux/ffi.scm.lux +++ b/stdlib/source/library/lux/ffi.scm.lux @@ -2,7 +2,6 @@ [library [lux (.except Alias) ["@" target] - ["[0]" meta] [abstract [monad (.only do)]] [control @@ -15,13 +14,14 @@ ["%" \\format (.only format)]] [collection ["[0]" list (.use "[1]#[0]" functor)]]] - [type - abstract] [macro (.only with_symbols) [syntax (.only syntax)] ["[0]" template] ["[0]" code (.only) - ["<[1]>" \\parser (.only Parser)]]]]]) + ["<[1]>" \\parser (.only Parser)]]] + ["[0]" meta (.only) + [type + abstract]]]]) (primitive .public (Object brand) Any) diff --git a/stdlib/source/library/lux/locale.lux b/stdlib/source/library/lux/locale.lux index d1c97493d..6cd384586 100644 --- a/stdlib/source/library/lux/locale.lux +++ b/stdlib/source/library/lux/locale.lux @@ -10,8 +10,9 @@ ["[0]" text (.only) ["%" \\format (.only format)] ["[0]" encoding (.only Encoding)]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] [/ ["[0]" language (.only Language)] ["[0]" territory (.only Territory)]]) diff --git a/stdlib/source/library/lux/locale/language.lux b/stdlib/source/library/lux/locale/language.lux index bab86a699..f5d9b051f 100644 --- a/stdlib/source/library/lux/locale/language.lux +++ b/stdlib/source/library/lux/locale/language.lux @@ -6,10 +6,11 @@ [hash (.only Hash)]] [data ["[0]" text]] - [type - [primitive (.except)]] [macro - ["[0]" template]]]]) + ["[0]" template]] + [meta + [type + [primitive (.except)]]]]]) ... https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes (primitive .public Language diff --git a/stdlib/source/library/lux/locale/territory.lux b/stdlib/source/library/lux/locale/territory.lux index 9688d691d..f89f8a619 100644 --- a/stdlib/source/library/lux/locale/territory.lux +++ b/stdlib/source/library/lux/locale/territory.lux @@ -6,10 +6,11 @@ [hash (.only Hash)]] [data ["[0]" text]] - [type - [primitive (.except)]] [macro - ["[0]" template]]]]) + ["[0]" template]] + [meta + [type + [primitive (.except)]]]]]) ... https://en.wikipedia.org/wiki/ISO_3166-1 (primitive .public Territory diff --git a/stdlib/source/library/lux/math.lux b/stdlib/source/library/lux/math.lux index 63f2e931c..d5b8f2629 100644 --- a/stdlib/source/library/lux/math.lux +++ b/stdlib/source/library/lux/math.lux @@ -29,8 +29,9 @@ ["[0]" type]]]] [meta [archive (.only Archive)]]]] - [type - ["[0]" check]]]] + [meta + [type + ["[0]" check]]]]] [/ ["[0]" random] [number diff --git a/stdlib/source/library/lux/math/modular.lux b/stdlib/source/library/lux/math/modular.lux index 489f798ab..b2ae0a5b3 100644 --- a/stdlib/source/library/lux/math/modular.lux +++ b/stdlib/source/library/lux/math/modular.lux @@ -21,8 +21,9 @@ [math [number ["i" int (.use "[1]#[0]" decimal)]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" // ["[1]" modulus (.only Modulus)]]) diff --git a/stdlib/source/library/lux/math/modulus.lux b/stdlib/source/library/lux/math/modulus.lux index d440669ae..333946b3d 100644 --- a/stdlib/source/library/lux/math/modulus.lux +++ b/stdlib/source/library/lux/math/modulus.lux @@ -14,8 +14,9 @@ [math [number ["i" int]]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (exception .public zero_cannot_be_a_modulus) diff --git a/stdlib/source/library/lux/math/number/i16.lux b/stdlib/source/library/lux/math/number/i16.lux index 446e5f71b..b83bf1f72 100644 --- a/stdlib/source/library/lux/math/number/i16.lux +++ b/stdlib/source/library/lux/math/number/i16.lux @@ -5,7 +5,8 @@ [equivalence (.only Equivalence)]] [control ["[0]" maybe]] - [type (.only by_example)]]] + [meta + [type (.only by_example)]]]] [// ["[0]" i64 (.only Sub)]]) diff --git a/stdlib/source/library/lux/math/number/i32.lux b/stdlib/source/library/lux/math/number/i32.lux index 262dc3eb4..4423f3098 100644 --- a/stdlib/source/library/lux/math/number/i32.lux +++ b/stdlib/source/library/lux/math/number/i32.lux @@ -1,11 +1,12 @@ (.require [library [lux (.except i64) - [type (.only by_example)] [abstract [equivalence (.only Equivalence)]] [control - ["[0]" maybe]]]] + ["[0]" maybe]] + [meta + [type (.only by_example)]]]] [// ["[0]" i64 (.only Sub)]]) diff --git a/stdlib/source/library/lux/math/number/i8.lux b/stdlib/source/library/lux/math/number/i8.lux index 0ea292821..49ccad042 100644 --- a/stdlib/source/library/lux/math/number/i8.lux +++ b/stdlib/source/library/lux/math/number/i8.lux @@ -1,11 +1,12 @@ (.require [library [lux (.except i64) - [type (.only by_example)] [abstract [equivalence (.only Equivalence)]] [control - ["[0]" maybe]]]] + ["[0]" maybe]] + [meta + [type (.only by_example)]]]] [// ["[0]" i64 (.only Sub)]]) diff --git a/stdlib/source/library/lux/math/random.lux b/stdlib/source/library/lux/math/random.lux index 89ae2ef53..7ebf577d7 100644 --- a/stdlib/source/library/lux/math/random.lux +++ b/stdlib/source/library/lux/math/random.lux @@ -34,8 +34,9 @@ ["[0]" duration (.only Duration)] ["[0]" month (.only Month)] ["[0]" day (.only Day)]] - [type - [refinement (.only Refiner Refined)]]]]) + [meta + [type + [refinement (.only Refiner Refined)]]]]]) (type .public PRNG (Rec PRNG diff --git a/stdlib/source/library/lux/type.lux b/stdlib/source/library/lux/meta/type.lux index 00afaddc0..00afaddc0 100644 --- a/stdlib/source/library/lux/type.lux +++ b/stdlib/source/library/lux/meta/type.lux diff --git a/stdlib/source/library/lux/type/check.lux b/stdlib/source/library/lux/meta/type/check.lux index cb49cc6e4..cb49cc6e4 100644 --- a/stdlib/source/library/lux/type/check.lux +++ b/stdlib/source/library/lux/meta/type/check.lux diff --git a/stdlib/source/library/lux/type/dynamic.lux b/stdlib/source/library/lux/meta/type/dynamic.lux index fd98afcdf..86ccf5753 100644 --- a/stdlib/source/library/lux/type/dynamic.lux +++ b/stdlib/source/library/lux/meta/type/dynamic.lux @@ -11,9 +11,9 @@ [macro (.only with_symbols) ["[0]" syntax (.only syntax)] ["[0]" code - ["<[1]>" \\parser]]] - ["[0]" type (.only) - ["[0]" primitive (.only primitive)]]]]) + ["<[1]>" \\parser]]]]] + ["[0]" // (.only) + ["[0]" primitive (.only primitive)]]) (exception .public (wrong_type [expected Type actual Type]) @@ -44,7 +44,7 @@ (with_symbols [g!type g!value] (in (list (` (.let [[(~ g!type) (~ g!value)] ((~! ..representation) (~ value))] (.is ((~! try.Try) (~ type)) - (.if (.at (~! type.equivalence) (~' =) + (.if (.at (~! //.equivalence) (~' =) (.type_literal (~ type)) (~ g!type)) {try.#Success (.as (~ type) (~ g!value))} ((~! exception.except) ..wrong_type [(.type_literal (~ type)) (~ g!type)])))))))))) diff --git a/stdlib/source/library/lux/type/implicit.lux b/stdlib/source/library/lux/meta/type/implicit.lux index f831c551b..977467202 100644 --- a/stdlib/source/library/lux/type/implicit.lux +++ b/stdlib/source/library/lux/meta/type/implicit.lux @@ -21,10 +21,10 @@ ["<[1]>" \\parser (.only Parser)]]] [math ["[0]" number (.only) - ["n" nat]]] - ["[0]" meta] - ["[0]" type (.use "[1]#[0]" equivalence) - ["[0]" check (.only Check)]]]]) + ["n" nat]]]]] + ["[0]" // (.use "[1]#[0]" equivalence) + ["/[1]" //] + ["[0]" check (.only Check)]]) (def (type_var id env) (-> Nat Type_Context (Meta Type)) @@ -36,20 +36,20 @@ (type_var id' env) _ - (at meta.monad in type)) + (at ///.monad in type)) {.#Some [_ {.#None}]} - (meta.failure (format "Unbound type-var " (%.nat id))) + (///.failure (format "Unbound type-var " (%.nat id))) {.#None} - (meta.failure (format "Unknown type-var " (%.nat id))) + (///.failure (format "Unknown type-var " (%.nat id))) )) (def (implicit_type var_name) (-> Symbol (Meta Type)) - (do meta.monad - [raw_type (meta.type var_name) - compiler meta.compiler_state] + (do ///.monad + [raw_type (///.type var_name) + compiler ///.compiler_state] (case raw_type {.#Var id} (type_var id (the .#type_context compiler)) @@ -64,7 +64,7 @@ (member_type idx sig_type') {.#Apply arg func} - (case (type.applied (list arg) func) + (case (//.applied (list arg) func) {.#None} (check.failure (format "Cannot apply type " (%.type func) " to type " (%.type arg))) @@ -85,52 +85,52 @@ (-> Symbol (Meta Symbol)) (case member ["" simple_name] - (meta.either (do meta.monad - [member (meta.normal member) - _ (meta.slot member)] - (in member)) - (do [! meta.monad] - [this_module_name meta.current_module_name - imp_mods (meta.imported_modules this_module_name) - tag_lists (monad.each ! meta.tag_lists imp_mods) - .let [tag_lists (|> tag_lists list#conjoint (list#each product.left) list#conjoint) - candidates (list.only (|>> product.right (text#= simple_name)) - tag_lists)]] - (case candidates - {.#End} - (meta.failure (format "Unknown tag: " (%.symbol member))) - - {.#Item winner {.#End}} - (in winner) - - _ - (meta.failure (format "Too many candidate tags: " (%.list %.symbol candidates)))))) + (///.either (do ///.monad + [member (///.normal member) + _ (///.slot member)] + (in member)) + (do [! ///.monad] + [this_module_name ///.current_module_name + imp_mods (///.imported_modules this_module_name) + tag_lists (monad.each ! ///.tag_lists imp_mods) + .let [tag_lists (|> tag_lists list#conjoint (list#each product.left) list#conjoint) + candidates (list.only (|>> product.right (text#= simple_name)) + tag_lists)]] + (case candidates + {.#End} + (///.failure (format "Unknown tag: " (%.symbol member))) + + {.#Item winner {.#End}} + (in winner) + + _ + (///.failure (format "Too many candidate tags: " (%.list %.symbol candidates)))))) _ - (at meta.monad in member))) + (at ///.monad in member))) (def (implicit_member member) (-> Symbol (Meta [Nat Type])) - (do meta.monad + (do ///.monad [member (member_name member) - [idx tag_list sig_type] (meta.slot member)] + [idx tag_list sig_type] (///.slot member)] (in [idx sig_type]))) (def (compatible_type? interface candidate) (-> Type Type Bit) - (with_expansions [<found?> (type#= interface candidate)] + (with_expansions [<found?> (//#= interface candidate)] (<| (or <found?>) - (let [[parameters candidate] (type.flat_univ_q candidate)]) + (let [[parameters candidate] (//.flat_univ_q candidate)]) (or <found?>) - (let [[inputs candidate] (type.flat_function candidate)]) + (let [[inputs candidate] (//.flat_function candidate)]) (or <found?>) - (let [[candidate parameters] (type.flat_application candidate)]) + (let [[candidate parameters] (//.flat_application candidate)]) (or <found?>) - (let [candidate (type.de_aliased candidate)]) + (let [candidate (//.de_aliased candidate)]) <found?>))) (def (available_definitions sig_type source_module target_module constants aggregate) @@ -146,8 +146,8 @@ (def (local_env sig_type) (-> Type (Meta (List [Symbol Type]))) - (do meta.monad - [local_batches meta.locals + (do ///.monad + [local_batches ///.locals .let [total_locals (list#mix (function (_ [name type] table) (try.else table (dictionary.has' name type table))) (is (Dictionary Text Type) @@ -162,17 +162,17 @@ (def (local_structs sig_type) (-> Type (Meta (List [Symbol Type]))) - (do [! meta.monad] - [this_module_name meta.current_module_name - definitions (meta.definitions this_module_name)] + (do [! ///.monad] + [this_module_name ///.current_module_name + definitions (///.definitions this_module_name)] (in (available_definitions sig_type this_module_name this_module_name definitions {.#End})))) (def (imported_structs sig_type) (-> Type (Meta (List [Symbol Type]))) - (do [! meta.monad] - [this_module_name meta.current_module_name - imported_modules (meta.imported_modules this_module_name) - accessible_definitions (monad.each ! meta.definitions imported_modules)] + (do [! ///.monad] + [this_module_name ///.current_module_name + imported_modules (///.imported_modules this_module_name) + accessible_definitions (monad.each ! ///.definitions imported_modules)] (in (list#mix (function (_ [imported_module definitions] tail) (available_definitions sig_type imported_module this_module_name definitions tail)) {.#End} @@ -188,7 +188,7 @@ (do check.monad [[id var] check.var] (|> func - (type.applied (list var)) + (//.applied (list var)) maybe.trusted (on_argument arg))) @@ -206,7 +206,7 @@ {.#UnivQ _} (do check.monad [[id var] check.var - [ids final_output] (concrete_type (maybe.trusted (type.applied (list var) type)))] + [ids final_output] (concrete_type (maybe.trusted (//.applied (list var) type)))] (in [{.#Item id ids} final_output])) @@ -229,14 +229,14 @@ (-> (-> Lux Type_Context Type (Check Instance)) Type_Context Type (List [Symbol Type]) (Meta (List Instance))) - (do meta.monad - [compiler meta.compiler_state] + (do ///.monad + [compiler ///.compiler_state] (case (|> alts (list#each (function (_ [alt_name alt_type]) (case (check.result context (do [! check.monad] [[tvars alt_type] (concrete_type alt_type) - .let [[deps alt_type] (type.flat_function alt_type)] + .let [[deps alt_type] (//.flat_function alt_type)] _ (check.check dep alt_type) context' check.context =deps (monad.each ! (provision compiler context') deps)] @@ -248,18 +248,18 @@ (list [alt_name =deps])))) list#conjoint) {.#End} - (meta.failure (format "No candidates for provisioning: " (%.type dep))) + (///.failure (format "No candidates for provisioning: " (%.type dep))) found (in found)))) (def (provision sig_type compiler context dep) (-> Type Lux Type_Context Type (Check Instance)) - (case (meta.result compiler - (all meta.either - (do meta.monad [alts (..local_env sig_type)] (..candidate_provision (provision sig_type) context dep alts)) - (do meta.monad [alts (..local_structs sig_type)] (..candidate_provision (provision sig_type) context dep alts)) - (do meta.monad [alts (..imported_structs sig_type)] (..candidate_provision (provision sig_type) context dep alts)))) + (case (///.result compiler + (all ///.either + (do ///.monad [alts (..local_env sig_type)] (..candidate_provision (provision sig_type) context dep alts)) + (do ///.monad [alts (..local_structs sig_type)] (..candidate_provision (provision sig_type) context dep alts)) + (do ///.monad [alts (..imported_structs sig_type)] (..candidate_provision (provision sig_type) context dep alts)))) {.#Left error} (check.failure error) @@ -277,15 +277,15 @@ (def (candidate_alternatives sig_type member_idx input_types output_type alts) (-> Type Nat (List Type) Type (List [Symbol Type]) (Meta (List Instance))) - (do meta.monad - [compiler meta.compiler_state - context meta.type_context] + (do ///.monad + [compiler ///.compiler_state + context ///.type_context] (case (|> alts (list#each (function (_ [alt_name alt_type]) (case (<| (check.result context) (do [! check.monad] [[tvars alt_type] (concrete_type alt_type) - .let [[deps alt_type] (type.flat_function alt_type)] + .let [[deps alt_type] (//.flat_function alt_type)] _ (check.check alt_type sig_type) member_type (member_type member_idx alt_type) _ (ensure_function_application! member_type input_types output_type) @@ -299,7 +299,7 @@ (list [alt_name =deps])))) list#conjoint) {.#End} - (meta.failure (format "No alternatives for " (%.type (type.function input_types output_type)))) + (///.failure (format "No alternatives for " (%.type (//.function input_types output_type)))) found (in found)))) @@ -307,10 +307,10 @@ (def (alternatives sig_type member_idx input_types output_type) (-> Type Nat (List Type) Type (Meta (List Instance))) (let [test (candidate_alternatives sig_type member_idx input_types output_type)] - (all meta.either - (do meta.monad [alts (..local_env sig_type)] (test alts)) - (do meta.monad [alts (..local_structs sig_type)] (test alts)) - (do meta.monad [alts (..imported_structs sig_type)] (test alts))))) + (all ///.either + (do ///.monad [alts (..local_env sig_type)] (test alts)) + (do ///.monad [alts (..local_structs sig_type)] (test alts)) + (do ///.monad [alts (..imported_structs sig_type)] (test alts))))) (def (var? input) (-> Code Bit) @@ -340,14 +340,14 @@ (<>.and (<>.some <code>.any) <code>.end))]) (case args {.#Left [args _]} - (do [! meta.monad] + (do [! ///.monad] [[member_idx sig_type] (..implicit_member member) input_types (monad.each ! ..implicit_type args) - output_type meta.expected_type + output_type ///.expected_type chosen_ones (alternatives sig_type member_idx input_types output_type)] (case chosen_ones {.#End} - (meta.failure (format "No implementation could be found for member: " (%.symbol member))) + (///.failure (format "No implementation could be found for member: " (%.symbol member))) {.#Item chosen {.#End}} (in (list (` (.at (~ (instance$ chosen)) @@ -355,14 +355,14 @@ (~+ (list#each code.symbol args)))))) _ - (meta.failure (format "Too many implementations available: " - (|> chosen_ones - (list#each (|>> product.left %.symbol)) - (text.interposed ", ")) - " --- for type: " (%.type sig_type))))) + (///.failure (format "Too many implementations available: " + (|> chosen_ones + (list#each (|>> product.left %.symbol)) + (text.interposed ", ")) + " --- for type: " (%.type sig_type))))) {.#Right [args _]} - (do [! meta.monad] + (do [! ///.monad] [labels (|> (macro.symbol "g!parameter") (list.repeated (list.size args)) (monad.all !))] @@ -377,12 +377,12 @@ (-> Nat (Meta (List Code))) (|> (macro.symbol "g!implicit") (list.repeated amount) - (monad.all meta.monad))) + (monad.all ///.monad))) (def .public with (syntax (_ [implementations (<code>.tuple (<>.many <code>.any)) body <code>.any]) - (do meta.monad + (do ///.monad [g!implicit+ (implicit_bindings (list.size implementations))] (in (list (` (let [(~+ (|> (list.zipped_2 g!implicit+ implementations) (list#each (function (_ [g!implicit implementation]) @@ -392,7 +392,7 @@ (def .public implicitly (syntax (_ [implementations (<>.many <code>.any)]) - (do meta.monad + (do ///.monad [g!implicit+ (implicit_bindings (list.size implementations))] (in (|> (list.zipped_2 g!implicit+ implementations) (list#each (function (_ [g!implicit implementation]) diff --git a/stdlib/source/library/lux/type/poly.lux b/stdlib/source/library/lux/meta/type/poly.lux index 4f70bb937..95d9f8ea7 100644 --- a/stdlib/source/library/lux/type/poly.lux +++ b/stdlib/source/library/lux/meta/type/poly.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["[0]" meta] [abstract ["[0]" monad (.only do)]] [control @@ -20,9 +19,10 @@ ["<[1]>" \\parser (.only Parser)]]] [math [number - ["n" nat]]] - ["[0]" type (.only) - ["<[1]>" \\parser (.only Env)]]]]) + ["n" nat]]]]] + ["[0]" // (.only) + ["<[1]>" \\parser (.only Env)] + ["/[1]" //]]) (def .public polytypic (syntax (_ [name <code>.local @@ -30,18 +30,18 @@ (with_symbols [g!_ g!type g!output] (let [g!name (code.symbol ["" name])] (in (.list (` ((~! syntax) ((~ g!_) [(~ g!type) (~! <code>.any)]) - ((~! do) (~! meta.monad) - [(~ g!type) ((~! meta.eval) .Type (~ g!type))] + ((~! do) (~! ///.monad) + [(~ g!type) ((~! ///.eval) .Type (~ g!type))] (case (is (.Either .Text .Code) - ((~! <type>.result) ((~! <>.rec) - (function ((~ g!_) (~ g!name)) - (~ body))) + ((~! <//>.result) ((~! <>.rec) + (function ((~ g!_) (~ g!name)) + (~ body))) (.as .Type (~ g!type)))) {.#Right (~ g!output)} ((~' in) (.list (~ g!output))) {.#Left (~ g!output)} - ((~! meta.failure) (~ g!output)))))))))))) + ((~! ///.failure) (~ g!output)))))))))))) (def .public (code env type) (-> Env Type Code) @@ -56,14 +56,14 @@ ([.#Var] [.#Ex]) {.#Parameter idx} - (let [idx (<type>.argument env idx)] + (let [idx (<//>.argument env idx)] (if (n.= 0 idx) (|> (dictionary.value idx env) maybe.trusted product.left (code env)) (` (.$ (~ (code.nat (-- idx))))))) {.#Apply {.#Primitive "" {.#End}} {.#Parameter idx}} - (case (<type>.argument env idx) + (case (<//>.argument env idx) 0 (|> env (dictionary.value 0) maybe.trusted product.left (code env)) idx (undefined)) @@ -76,8 +76,8 @@ (^.with_template [<macro> <tag> <flattener>] [{<tag> left right} (` (<macro> (~+ (list#each (code env) (<flattener> type)))))]) - ([.Union .#Sum type.flat_variant] - [.Tuple .#Product type.flat_tuple]) + ([.Union .#Sum //.flat_variant] + [.Tuple .#Product //.flat_tuple]) {.#Named name sub_type} (code.symbol name) diff --git a/stdlib/source/library/lux/type/primitive.lux b/stdlib/source/library/lux/meta/type/primitive.lux index 50c288e1c..50c288e1c 100644 --- a/stdlib/source/library/lux/type/primitive.lux +++ b/stdlib/source/library/lux/meta/type/primitive.lux diff --git a/stdlib/source/library/lux/type/quotient.lux b/stdlib/source/library/lux/meta/type/quotient.lux index 98292553c..72088cd46 100644 --- a/stdlib/source/library/lux/type/quotient.lux +++ b/stdlib/source/library/lux/meta/type/quotient.lux @@ -6,9 +6,9 @@ [macro (.only with_symbols) [syntax (.only syntax)] ["[0]" code - ["<[1]>" \\parser]]] - ["[0]" type - [primitive (.except)]]]]) + ["<[1]>" \\parser]]]]] + ["[0]" // (.only) + [primitive (.except)]]) (primitive .public (Class t c %) (-> t c) @@ -56,7 +56,7 @@ (~ g!_) (.undefined)))) - ... (` ((~! type.by_example) [(~ g!t) (~ g!c) (~ g!%)] + ... (` ((~! //.by_example) [(~ g!t) (~ g!c) (~ g!%)] ... (is (..Class (~ g!t) (~ g!c) (~ g!%)) ... (~ class)) ... (..Quotient (~ g!t) (~ g!c) (~ g!%)))) diff --git a/stdlib/source/library/lux/type/refinement.lux b/stdlib/source/library/lux/meta/type/refinement.lux index 225edc957..24e0aa2e2 100644 --- a/stdlib/source/library/lux/type/refinement.lux +++ b/stdlib/source/library/lux/meta/type/refinement.lux @@ -7,9 +7,9 @@ ["[0]" macro (.only) [syntax (.only syntax)] ["[0]" code - ["<[1]>" \\parser]]] - ["[0]" type (.only) - [primitive (.except)]]]]) + ["<[1]>" \\parser]]]]] + ["[0]" // (.only) + [primitive (.except)]]) (primitive .public (Refined t %) (Record @@ -98,7 +98,7 @@ (~ g!_) (.undefined)))) - ... (` ((~! type.by_example) [(~ g!t) (~ g!%)] + ... (` ((~! //.by_example) [(~ g!t) (~ g!%)] ... (is (..Refiner (~ g!t) (~ g!%)) ... (~ refiner)) ... (..Refined (~ g!t) (~ g!%)))) diff --git a/stdlib/source/library/lux/type/resource.lux b/stdlib/source/library/lux/meta/type/resource.lux index 760f07dc2..bd9e71c08 100644 --- a/stdlib/source/library/lux/type/resource.lux +++ b/stdlib/source/library/lux/meta/type/resource.lux @@ -22,9 +22,9 @@ ["<[1]>" \\parser (.only Parser)]]] [math [number - ["n" nat]]] - [type - [primitive (.except)]]]]) + ["n" nat]]]]] + [// + [primitive (.except)]]) (type .public (Procedure monad input output value) (-> input (monad [output value]))) diff --git a/stdlib/source/library/lux/type/unit.lux b/stdlib/source/library/lux/meta/type/unit.lux index 994e7ad11..994e7ad11 100644 --- a/stdlib/source/library/lux/type/unit.lux +++ b/stdlib/source/library/lux/meta/type/unit.lux diff --git a/stdlib/source/library/lux/type/unit/scale.lux b/stdlib/source/library/lux/meta/type/unit/scale.lux index b7f598d13..b7f598d13 100644 --- a/stdlib/source/library/lux/type/unit/scale.lux +++ b/stdlib/source/library/lux/meta/type/unit/scale.lux diff --git a/stdlib/source/library/lux/type/variance.lux b/stdlib/source/library/lux/meta/type/variance.lux index ac7e120d4..ac7e120d4 100644 --- a/stdlib/source/library/lux/type/variance.lux +++ b/stdlib/source/library/lux/meta/type/variance.lux diff --git a/stdlib/source/library/lux/target/common_lisp.lux b/stdlib/source/library/lux/target/common_lisp.lux index 7f93025a2..06fca5f8c 100644 --- a/stdlib/source/library/lux/target/common_lisp.lux +++ b/stdlib/source/library/lux/target/common_lisp.lux @@ -13,8 +13,9 @@ [math [number ["f" frac]]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (def as_form (-> Text Text) diff --git a/stdlib/source/library/lux/target/js.lux b/stdlib/source/library/lux/target/js.lux index 8665f2ce4..0c275562d 100644 --- a/stdlib/source/library/lux/target/js.lux +++ b/stdlib/source/library/lux/target/js.lux @@ -14,8 +14,9 @@ [number ["i" int] ["f" frac]]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (def expression (text.enclosed ["(" ")"])) diff --git a/stdlib/source/library/lux/target/jvm/bytecode/address.lux b/stdlib/source/library/lux/target/jvm/bytecode/address.lux index f1b07aa77..66b50f65a 100644 --- a/stdlib/source/library/lux/target/jvm/bytecode/address.lux +++ b/stdlib/source/library/lux/target/jvm/bytecode/address.lux @@ -14,8 +14,9 @@ [math [number ["n" nat]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" // [jump (.only Big_Jump)] ["/[1]" // diff --git a/stdlib/source/library/lux/target/jvm/bytecode/environment/limit/registry.lux b/stdlib/source/library/lux/target/jvm/bytecode/environment/limit/registry.lux index f1cc6058d..3f16fa4a2 100644 --- a/stdlib/source/library/lux/target/jvm/bytecode/environment/limit/registry.lux +++ b/stdlib/source/library/lux/target/jvm/bytecode/environment/limit/registry.lux @@ -13,8 +13,9 @@ [math [number ["n" nat]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" ///// [encoding ["[1][0]" unsigned (.only U1 U2)]] diff --git a/stdlib/source/library/lux/target/jvm/bytecode/environment/limit/stack.lux b/stdlib/source/library/lux/target/jvm/bytecode/environment/limit/stack.lux index daf9da304..7c7e0472e 100644 --- a/stdlib/source/library/lux/target/jvm/bytecode/environment/limit/stack.lux +++ b/stdlib/source/library/lux/target/jvm/bytecode/environment/limit/stack.lux @@ -11,8 +11,9 @@ ["%" \\format]] [binary [\\format (.only Format)]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" ///// [encoding ["[1][0]" unsigned (.only U2)]]]) diff --git a/stdlib/source/library/lux/target/jvm/bytecode/instruction.lux b/stdlib/source/library/lux/target/jvm/bytecode/instruction.lux index 1c654dae9..3b613b206 100644 --- a/stdlib/source/library/lux/target/jvm/bytecode/instruction.lux +++ b/stdlib/source/library/lux/target/jvm/bytecode/instruction.lux @@ -21,8 +21,9 @@ [math [number (.only hex) ["n" nat]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" // ["[1][0]" address (.only Address)] ["[1][0]" jump (.only Jump Big_Jump)] diff --git a/stdlib/source/library/lux/target/jvm/constant.lux b/stdlib/source/library/lux/target/jvm/constant.lux index 516930b9d..ae57d805f 100644 --- a/stdlib/source/library/lux/target/jvm/constant.lux +++ b/stdlib/source/library/lux/target/jvm/constant.lux @@ -21,8 +21,9 @@ ["[0]" i64] ["[0]" int] ["[0]" frac]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" / ["[1][0]" tag] ["/[1]" // diff --git a/stdlib/source/library/lux/target/jvm/constant/tag.lux b/stdlib/source/library/lux/target/jvm/constant/tag.lux index 2b12af966..bcd1d4209 100644 --- a/stdlib/source/library/lux/target/jvm/constant/tag.lux +++ b/stdlib/source/library/lux/target/jvm/constant/tag.lux @@ -8,8 +8,9 @@ [data [binary [\\format (.only Format)]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" /// [encoding ["[1][0]" unsigned (.only U1) (.use "u1//[0]" equivalence)]]]) diff --git a/stdlib/source/library/lux/target/jvm/encoding/name.lux b/stdlib/source/library/lux/target/jvm/encoding/name.lux index 246bb0575..7516cdc46 100644 --- a/stdlib/source/library/lux/target/jvm/encoding/name.lux +++ b/stdlib/source/library/lux/target/jvm/encoding/name.lux @@ -4,8 +4,9 @@ [data ["[0]" text (.only) ["%" \\format (.only format)]]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (def .public internal_separator "/") (def .public external_separator ".") diff --git a/stdlib/source/library/lux/target/jvm/encoding/signed.lux b/stdlib/source/library/lux/target/jvm/encoding/signed.lux index 30ec9a567..ba6304a39 100644 --- a/stdlib/source/library/lux/target/jvm/encoding/signed.lux +++ b/stdlib/source/library/lux/target/jvm/encoding/signed.lux @@ -19,8 +19,9 @@ ["[0]" i64] ["n" nat] ["i" int]]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (primitive .public (Signed brand) Int diff --git a/stdlib/source/library/lux/target/jvm/encoding/unsigned.lux b/stdlib/source/library/lux/target/jvm/encoding/unsigned.lux index eee130b27..bbc331384 100644 --- a/stdlib/source/library/lux/target/jvm/encoding/unsigned.lux +++ b/stdlib/source/library/lux/target/jvm/encoding/unsigned.lux @@ -18,8 +18,9 @@ [number ["n" nat] ["[0]" i64]]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (primitive .public (Unsigned brand) Nat diff --git a/stdlib/source/library/lux/target/jvm/index.lux b/stdlib/source/library/lux/target/jvm/index.lux index 1bae3b814..05489792b 100644 --- a/stdlib/source/library/lux/target/jvm/index.lux +++ b/stdlib/source/library/lux/target/jvm/index.lux @@ -6,8 +6,9 @@ [data [binary [\\format (.only Format)]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" // [encoding ["[1][0]" unsigned (.only U2)]]]) diff --git a/stdlib/source/library/lux/target/jvm/modifier.lux b/stdlib/source/library/lux/target/jvm/modifier.lux index 05df8f292..9d135aa55 100644 --- a/stdlib/source/library/lux/target/jvm/modifier.lux +++ b/stdlib/source/library/lux/target/jvm/modifier.lux @@ -17,8 +17,9 @@ [math ["[0]" number (.only hex) ["[0]" i64]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" // [encoding ["[1][0]" unsigned]]]) diff --git a/stdlib/source/library/lux/target/jvm/modifier/inner.lux b/stdlib/source/library/lux/target/jvm/modifier/inner.lux index 1537dbe10..c61569575 100644 --- a/stdlib/source/library/lux/target/jvm/modifier/inner.lux +++ b/stdlib/source/library/lux/target/jvm/modifier/inner.lux @@ -1,8 +1,9 @@ (.require [library [lux (.except static) - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] [// (.only modifiers)]) (primitive .public Inner Any) diff --git a/stdlib/source/library/lux/target/jvm/type.lux b/stdlib/source/library/lux/target/jvm/type.lux index 3bb1f6411..9b90e6c28 100644 --- a/stdlib/source/library/lux/target/jvm/type.lux +++ b/stdlib/source/library/lux/target/jvm/type.lux @@ -14,8 +14,9 @@ [math [number ["n" nat]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" // [encoding ["[1][0]" name (.only External)]]] diff --git a/stdlib/source/library/lux/target/jvm/type/category.lux b/stdlib/source/library/lux/target/jvm/type/category.lux index 62a0a3a45..bbef2f241 100644 --- a/stdlib/source/library/lux/target/jvm/type/category.lux +++ b/stdlib/source/library/lux/target/jvm/type/category.lux @@ -3,8 +3,9 @@ [lux (.except Primitive) [macro ["[0]" template]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (primitive Void' Any) (primitive .public (Value' kind) Any) diff --git a/stdlib/source/library/lux/target/jvm/type/descriptor.lux b/stdlib/source/library/lux/target/jvm/type/descriptor.lux index 332a1c128..a3635d767 100644 --- a/stdlib/source/library/lux/target/jvm/type/descriptor.lux +++ b/stdlib/source/library/lux/target/jvm/type/descriptor.lux @@ -13,8 +13,9 @@ [math [number ["n" nat]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" // [category (.only Void Value Return Method Primitive Object Class Array Var Parameter Declaration)] ["/[1]" // diff --git a/stdlib/source/library/lux/target/jvm/type/lux.lux b/stdlib/source/library/lux/target/jvm/type/lux.lux index 6f2ab6b47..724092721 100644 --- a/stdlib/source/library/lux/target/jvm/type/lux.lux +++ b/stdlib/source/library/lux/target/jvm/type/lux.lux @@ -15,9 +15,10 @@ [collection ["[0]" array] ["[0]" dictionary (.only Dictionary)]]] - [type - [":" primitive] - ["[0]" check (.only Check) (.use "[1]#[0]" monad)]]]] + [meta + [type + [":" primitive] + ["[0]" check (.only Check) (.use "[1]#[0]" monad)]]]]] ["[0]" // (.only) [category (.only Void Value Return Method Primitive Object Class Array Var Parameter)] ["[1][0]" descriptor] diff --git a/stdlib/source/library/lux/target/jvm/type/reflection.lux b/stdlib/source/library/lux/target/jvm/type/reflection.lux index cac395b22..de151b35d 100644 --- a/stdlib/source/library/lux/target/jvm/type/reflection.lux +++ b/stdlib/source/library/lux/target/jvm/type/reflection.lux @@ -6,8 +6,9 @@ [data ["[0]" text (.use "[1]#[0]" equivalence) ["%" \\format (.only format)]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" // [category (.only Void Value Return Method Primitive Object Class Array Var Parameter Declaration)] ["[1][0]" descriptor] diff --git a/stdlib/source/library/lux/target/jvm/type/signature.lux b/stdlib/source/library/lux/target/jvm/type/signature.lux index cbde0203a..6afc33607 100644 --- a/stdlib/source/library/lux/target/jvm/type/signature.lux +++ b/stdlib/source/library/lux/target/jvm/type/signature.lux @@ -11,8 +11,9 @@ ["%" \\format (.only format)]] [collection ["[0]" list (.use "[1]#[0]" functor)]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" // [category (.only Void Value Return Method Primitive Object Class Array Var Parameter Declaration Inheritance)] ["[1][0]" descriptor] diff --git a/stdlib/source/library/lux/target/lua.lux b/stdlib/source/library/lux/target/lua.lux index f12cfbac6..8f8a3ed42 100644 --- a/stdlib/source/library/lux/target/lua.lux +++ b/stdlib/source/library/lux/target/lua.lux @@ -23,8 +23,9 @@ ["n" nat] ["i" int] ["f" frac]]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) ... Added the carriage return for better Windows compatibility. (def \n+ diff --git a/stdlib/source/library/lux/target/php.lux b/stdlib/source/library/lux/target/php.lux index 2ad1863b6..2e11466f9 100644 --- a/stdlib/source/library/lux/target/php.lux +++ b/stdlib/source/library/lux/target/php.lux @@ -22,8 +22,9 @@ [number ["n" nat] ["f" frac]]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (def input_separator ", ") (def statement_suffix ";") diff --git a/stdlib/source/library/lux/target/python.lux b/stdlib/source/library/lux/target/python.lux index ddc601161..3237a638c 100644 --- a/stdlib/source/library/lux/target/python.lux +++ b/stdlib/source/library/lux/target/python.lux @@ -23,8 +23,9 @@ [number ["n" nat] ["f" frac]]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (.def input_separator ", ") diff --git a/stdlib/source/library/lux/target/r.lux b/stdlib/source/library/lux/target/r.lux index 6d56eea58..4c6d87403 100644 --- a/stdlib/source/library/lux/target/r.lux +++ b/stdlib/source/library/lux/target/r.lux @@ -18,8 +18,9 @@ [math [number ["f" frac]]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (primitive .public (Code kind) Text diff --git a/stdlib/source/library/lux/target/ruby.lux b/stdlib/source/library/lux/target/ruby.lux index 5a5f5af9d..b2dee4ea6 100644 --- a/stdlib/source/library/lux/target/ruby.lux +++ b/stdlib/source/library/lux/target/ruby.lux @@ -22,8 +22,9 @@ [number ["n" nat] ["f" frac]]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (def input_separator ", ") (def statement_suffix ";") diff --git a/stdlib/source/library/lux/target/scheme.lux b/stdlib/source/library/lux/target/scheme.lux index 0a2d66b7d..4173b4241 100644 --- a/stdlib/source/library/lux/target/scheme.lux +++ b/stdlib/source/library/lux/target/scheme.lux @@ -18,8 +18,9 @@ [number ["n" nat] ["f" frac]]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) ... Added the carriage return for better Windows compatibility. (def \n+ diff --git a/stdlib/source/library/lux/time.lux b/stdlib/source/library/lux/time.lux index 3f57e5889..e020c4069 100644 --- a/stdlib/source/library/lux/time.lux +++ b/stdlib/source/library/lux/time.lux @@ -18,8 +18,9 @@ [math [number ["n" nat (.use "[1]#[0]" decimal)]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] [/ ["[0]" duration (.only Duration)]]) diff --git a/stdlib/source/library/lux/time/date.lux b/stdlib/source/library/lux/time/date.lux index 78bd79237..8140b076b 100644 --- a/stdlib/source/library/lux/time/date.lux +++ b/stdlib/source/library/lux/time/date.lux @@ -22,8 +22,9 @@ [number ["n" nat (.use "[1]#[0]" decimal)] ["i" int]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" // ["[1][0]" year (.only Year)] ["[1][0]" month (.only Month)]]) diff --git a/stdlib/source/library/lux/time/duration.lux b/stdlib/source/library/lux/time/duration.lux index b8ed4f776..00a7c1d1e 100644 --- a/stdlib/source/library/lux/time/duration.lux +++ b/stdlib/source/library/lux/time/duration.lux @@ -18,8 +18,9 @@ [number ["i" int] ["[0]" nat (.use "[1]#[0]" decimal)]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" // ["[1][0]" year]]) diff --git a/stdlib/source/library/lux/time/instant.lux b/stdlib/source/library/lux/time/instant.lux index a453d5f58..2b58b5bf2 100644 --- a/stdlib/source/library/lux/time/instant.lux +++ b/stdlib/source/library/lux/time/instant.lux @@ -20,8 +20,9 @@ [number ["i" int] ["f" frac]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" // (.only Time) ["[0]" duration (.only Duration)] ["[0]" year (.only Year)] diff --git a/stdlib/source/library/lux/time/year.lux b/stdlib/source/library/lux/time/year.lux index 494f3355b..02062e6aa 100644 --- a/stdlib/source/library/lux/time/year.lux +++ b/stdlib/source/library/lux/time/year.lux @@ -17,8 +17,9 @@ [number ["n" nat (.use "[1]#[0]" decimal)] ["i" int (.use "[1]#[0]" decimal)]]] - [type - [primitive (.except)]]]]) + [meta + [type + [primitive (.except)]]]]]) (def (internal year) (-> Int Int) diff --git a/stdlib/source/library/lux/tool/compiler/default/platform.lux b/stdlib/source/library/lux/tool/compiler/default/platform.lux index 492644edc..af29859b7 100644 --- a/stdlib/source/library/lux/tool/compiler/default/platform.lux +++ b/stdlib/source/library/lux/tool/compiler/default/platform.lux @@ -27,9 +27,9 @@ ["[0]" set (.only Set)] ["[0]" list (.use "[1]#[0]" monoid functor mix)]]] ["[0]" meta (.only) - ["[0]" configuration (.only Configuration)]] - [type (.only sharing) - ["[0]" check]] + ["[0]" configuration (.only Configuration)] + [type (.only sharing) + ["[0]" check]]] [world ["[0]" file (.only Path)] ["[0]" console]]]] diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/analysis/evaluation.lux b/stdlib/source/library/lux/tool/compiler/language/lux/analysis/evaluation.lux index d25341b39..402cf563a 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/analysis/evaluation.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/analysis/evaluation.lux @@ -1,8 +1,6 @@ (.require [library [lux (.except) - [type (.only sharing)] - ["[0]" meta] [abstract [monad (.only do)]] [control @@ -16,7 +14,9 @@ ["[0]" dictionary (.only Dictionary)]]] [math [number - ["n" nat]]]]] + ["n" nat]]] + ["[0]" meta (.only) + [type (.only sharing)]]]] ["[0]" // (.only Operation) [macro (.only Expander)] ["[1][0]" type] diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/analysis/inference.lux b/stdlib/source/library/lux/tool/compiler/language/lux/analysis/inference.lux index da4761411..e13058163 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/analysis/inference.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/analysis/inference.lux @@ -20,8 +20,9 @@ [math [number ["n" nat]]] - ["[0]" type (.only) - ["[0]" check]]]] + [meta + ["[0]" type (.only) + ["[0]" check]]]]] ["/" // (.only Analysis Operation Phase) ["[1][0]" type] [// diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/analysis/type.lux b/stdlib/source/library/lux/tool/compiler/language/lux/analysis/type.lux index 182199934..6cfad0d9f 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/analysis/type.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/analysis/type.lux @@ -17,8 +17,9 @@ [math [number ["n" nat]]] - [type - ["[0]" check (.only Check)]]]] + [meta + [type + ["[0]" check (.only Check)]]]]] ["/" // (.only Operation) [// [phase diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/case.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/case.lux index ba5d13ca3..6f3c13d65 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/case.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/case.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except case) - ["[0]" meta] [abstract ["[0]" monad (.only do)]] [control @@ -20,8 +19,9 @@ [macro ["^" pattern] ["[0]" code]] - ["[0]" type (.only) - ["[0]" check (.only Check)]]]] + ["[0]" meta (.only) + ["[0]" type (.only) + ["[0]" check (.only Check)]]]]] ["[0]" / ["/[1]" // ["[1][0]" complex] diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/complex.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/complex.lux index 3293fb170..c355ad0d1 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/complex.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/complex.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["[0]" meta] [abstract ["[0]" monad (.only do)]] [control @@ -21,10 +20,10 @@ [math [number ["n" nat]]] - [meta - ["[0]" symbol]] - ["[0]" type (.only) - ["[0]" check]]]] + ["[0]" meta (.only) + ["[0]" symbol] + ["[0]" type (.only) + ["[0]" check]]]]] ["[0]" // ["[1][0]" simple] ["/[1]" // diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/function.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/function.lux index 4354f10a1..68d8ed9e4 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/function.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/function.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except function) - ["[0]" meta] [abstract [monad (.only do)]] [control @@ -17,8 +16,9 @@ [math [number ["n" nat]]] - ["[0]" type (.only) - ["[0]" check]]]] + ["[0]" meta (.only) + ["[0]" type (.only) + ["[0]" check]]]]] ["[0]" /// ["[1][0]" extension] [// 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 102e5adcf..580faf086 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 @@ -14,8 +14,9 @@ [macro ["[0]" code ["<[1]>" \\parser (.only Parser)]]] - ["[0]" type (.only) - ["[0]" check]] + [meta + ["[0]" type (.only) + ["[0]" check]]] ["@" target (.only) ["_" js]]]] [// 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 d22d74aaf..cad6fe27b 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 @@ -2,7 +2,6 @@ [library [lux (.except Type Module Primitive char int type) ["[0]" ffi (.only import)] - ["[0]" meta] [abstract ["[0]" monad (.only do)]] [control @@ -57,8 +56,9 @@ ["[0]" parser] ["[0]" alias (.only Aliasing)] ["[0]T" lux (.only Mapping)]]]] - ["[0]" type (.only) - ["[0]" check (.only Check) (.use "[1]#[0]" monad)]]]] + ["[0]" meta (.only) + ["[0]" type (.only) + ["[0]" check (.only Check) (.use "[1]#[0]" monad)]]]]] ["[0]" // ["[1][0]" lux (.only custom)] ["/[1]" // (.only) 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 3c0e4cc86..d62efd51f 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 @@ -14,8 +14,9 @@ [macro ["[0]" code ["<[1]>" \\parser (.only Parser)]]] - ["[0]" type (.only) - ["[0]" check]] + [meta + ["[0]" type (.only) + ["[0]" check]]] ["@" target (.only) ["_" lua]]]] [// 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 75e4e8516..37ba8abe9 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 @@ -21,8 +21,9 @@ [math [number ["n" nat]]] - [type - ["[0]" check]] + [meta + [type + ["[0]" check]]] ["[0]" meta]]] ["[0]" /// (.only) ["[1][0]" bundle] 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 3852d2b24..3417bf78a 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 @@ -14,8 +14,9 @@ [macro ["[0]" code ["<[1]>" \\parser (.only Parser)]]] - ["[0]" type (.only) - ["[0]" check]] + [meta + ["[0]" type (.only) + ["[0]" check]]] ["@" target (.only) ["_" php]]]] [// 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 3c6e4b452..0712fe644 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 @@ -14,8 +14,9 @@ [macro ["[0]" code ["<[1]>" \\parser (.only Parser)]]] - ["[0]" type (.only) - ["[0]" check]] + [meta + ["[0]" type (.only) + ["[0]" check]]] ["@" target (.only) ["_" python]]]] [// 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 a53133555..67f44e35a 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 @@ -14,8 +14,9 @@ [macro ["[0]" code ["<[1]>" \\parser (.only Parser)]]] - ["[0]" type (.only) - ["[0]" check]] + [meta + ["[0]" type (.only) + ["[0]" check]]] ["@" target ["_" r]]]] [// 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 3029aec9d..965f580b1 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 @@ -14,8 +14,9 @@ [macro ["[0]" code ["<[1]>" \\parser (.only Parser)]]] - ["[0]" type (.only) - ["[0]" check]] + [meta + ["[0]" type (.only) + ["[0]" check]]] ["@" target (.only) ["_" ruby]]]] [// 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 bf1493940..5768379ce 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 @@ -14,8 +14,9 @@ [macro ["[0]" code ["<[1]>" \\parser (.only Parser)]]] - ["[0]" type (.only) - ["[0]" check]] + [meta + ["[0]" type (.only) + ["[0]" check]]] ["@" target (.only) ["_" scheme]]]] [// diff --git a/stdlib/source/library/lux/tool/compiler/meta/archive.lux b/stdlib/source/library/lux/tool/compiler/meta/archive.lux index fd8a0c817..75612d11a 100644 --- a/stdlib/source/library/lux/tool/compiler/meta/archive.lux +++ b/stdlib/source/library/lux/tool/compiler/meta/archive.lux @@ -25,8 +25,9 @@ [math [number ["n" nat (.use "[1]#[0]" equivalence)]]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] [/ ["[0]" artifact] ["[0]" registry (.only Registry)] diff --git a/stdlib/source/library/lux/tool/compiler/meta/archive/key.lux b/stdlib/source/library/lux/tool/compiler/meta/archive/key.lux index 0e26e7718..24db1094f 100644 --- a/stdlib/source/library/lux/tool/compiler/meta/archive/key.lux +++ b/stdlib/source/library/lux/tool/compiler/meta/archive/key.lux @@ -1,8 +1,9 @@ (.require [library [lux (.except) - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] [// [signature (.only Signature)]]) diff --git a/stdlib/source/library/lux/tool/compiler/meta/archive/module/document.lux b/stdlib/source/library/lux/tool/compiler/meta/archive/module/document.lux index 64fae1ab4..46f7e2d5e 100644 --- a/stdlib/source/library/lux/tool/compiler/meta/archive/module/document.lux +++ b/stdlib/source/library/lux/tool/compiler/meta/archive/module/document.lux @@ -13,8 +13,9 @@ ["[0]" binary [\\parser (.only Parser)] ["[1]" \\format (.only Format)]]] - [type (.only sharing) - [primitive (.except)]]]] + [meta + [type (.only sharing) + [primitive (.except)]]]]] [/// ["[0]" signature (.only Signature) (.use "[1]#[0]" equivalence)] ["[0]" key (.only Key)]]) diff --git a/stdlib/source/library/lux/tool/compiler/meta/archive/registry.lux b/stdlib/source/library/lux/tool/compiler/meta/archive/registry.lux index ec61e4b79..b7c1e2e35 100644 --- a/stdlib/source/library/lux/tool/compiler/meta/archive/registry.lux +++ b/stdlib/source/library/lux/tool/compiler/meta/archive/registry.lux @@ -22,8 +22,9 @@ ["[0]" dictionary (.only Dictionary)]]] [macro ["^" pattern]] - [type - [primitive (.except)]]]] + [meta + [type + [primitive (.except)]]]]] ["[0]" // ["[0]" unit] ["[1]" artifact (.only Artifact ID) diff --git a/stdlib/source/library/lux/world/file/watch.lux b/stdlib/source/library/lux/world/file/watch.lux index d21036caa..aee589f28 100644 --- a/stdlib/source/library/lux/world/file/watch.lux +++ b/stdlib/source/library/lux/world/file/watch.lux @@ -1,6 +1,6 @@ (.require [library - [lux (.except all) + [lux (.except all and) ["@" target] ["[0]" ffi (.only import)] [abstract @@ -29,8 +29,9 @@ ["n" nat]]] [time ["[0]" instant (.only Instant) (.use "[1]#[0]" equivalence)]] - [type - [primitive (.only primitive representation abstraction)]]]] + [meta + [type + [primitive (.only primitive representation abstraction)]]]]] ["[0]" //]) (primitive .public Concern @@ -66,7 +67,7 @@ false false true] ) - (def .public (also left right) + (def .public (and left right) (-> Concern Concern Concern) (abstraction [#creation (or (..creation? left) (..creation? right)) @@ -75,7 +76,7 @@ (def .public all Concern - (.all ..also + (.all ..and ..creation ..modification ..deletion @@ -339,7 +340,7 @@ (|>> java/nio/file/WatchKey::pollEvents (at io.monad each (|>> ..default_list (list#each default_event_concern) - (list#mix ..also ..none))))) + (list#mix ..and ..none))))) (import java/nio/file/WatchService "[1]::[0]" @@ -441,8 +442,8 @@ (do async.monad [?concern (stop path)] (do (try.with async.monad) - [key (..default_start (..watch_events (..also (try.else ..none ?concern) - the_concern)) + [key (..default_start (..watch_events (..and (try.else ..none ?concern) + the_concern)) watcher path)] (do async.monad diff --git a/stdlib/source/parser/lux/data/binary.lux b/stdlib/source/parser/lux/data/binary.lux index 1e1ac7704..00c3d3656 100644 --- a/stdlib/source/parser/lux/data/binary.lux +++ b/stdlib/source/parser/lux/data/binary.lux @@ -2,7 +2,6 @@ [library [lux (.except and or nat int rev list symbol type) [ffi (.only)] - [type (.only sharing)] [abstract [hash (.only Hash)] [monad (.only do)]] @@ -29,7 +28,9 @@ [math [number ["n" nat] - ["[0]" frac]]]]]) + ["[0]" frac]]] + [meta + [type (.only sharing)]]]]) (.type .public Offset Nat) diff --git a/stdlib/source/parser/lux/type.lux b/stdlib/source/parser/lux/meta/type.lux index a107a1778..7c7090474 100644 --- a/stdlib/source/parser/lux/type.lux +++ b/stdlib/source/parser/lux/meta/type.lux @@ -19,9 +19,10 @@ ["[0]" code]] [math [number - ["n" nat (.use "[1]#[0]" decimal)]]] - ["[0]" type (.use "[1]#[0]" equivalence) - ["[0]" check]]]]) + ["n" nat (.use "[1]#[0]" decimal)]]]]] + [\\library + ["[0]" / (.use "[1]#[0]" equivalence) + ["[0]" check]]]) (def |recursion_dummy| (template (|recursion_dummy|) @@ -159,20 +160,20 @@ (All (_ a) (-> (Parser a) (Parser a))) (do //.monad [headT ..any] - (let [members (<flattener> (type.anonymous headT))] + (let [members (<flattener> (/.anonymous headT))] (if (n.> 1 (list.size members)) (local members poly) (//.failure (exception.error <exception> headT)))))))] - [variant type.flat_variant ..not_variant] - [tuple type.flat_tuple ..not_tuple] + [variant /.flat_variant ..not_variant] + [tuple /.flat_tuple ..not_tuple] ) (def polymorphic' (Parser [Nat Type]) (do //.monad [headT any - .let [[num_arg bodyT] (type.flat_univ_q (type.anonymous headT))]] + .let [[num_arg bodyT] (/.flat_univ_q (/.anonymous headT))]] (if (n.= 0 num_arg) (//.failure (exception.error ..not_polymorphic headT)) (in [num_arg bodyT])))) @@ -218,7 +219,7 @@ (All (_ i o) (-> (Parser i) (Parser o) (Parser [i o]))) (do //.monad [headT any - .let [[inputsT outputT] (type.flat_function (type.anonymous headT))]] + .let [[inputsT outputT] (/.flat_function (/.anonymous headT))]] (if (n.> 0 (list.size inputsT)) (//.and (local inputsT in_poly) (local (list outputT) out_poly)) @@ -228,7 +229,7 @@ (All (_ a) (-> (Parser a) (Parser a))) (do //.monad [headT any - .let [[funcT paramsT] (type.flat_application (type.anonymous headT))]] + .let [[funcT paramsT] (/.flat_application (/.anonymous headT))]] (if (n.= 0 (list.size paramsT)) (//.failure (exception.error ..not_application headT)) (..local {.#Item funcT paramsT} poly)))) @@ -242,7 +243,7 @@ (in []) (//.failure (exception.error ..types_do_not_match [expected actual])))))] - [exactly type#=] + [exactly /#=] [sub check.subsumes?] [super (function.flipped check.subsumes?)] ) @@ -311,7 +312,7 @@ (All (_ a) (-> (Parser a) (Parser [Code a]))) (do [! //.monad] [headT any] - (case (type.anonymous headT) + (case (/.anonymous headT) (pattern {.#Apply (|recursion_dummy|) {.#UnivQ _ headT'}}) (do ! [[recT _ output] (|> poly @@ -328,7 +329,7 @@ (do //.monad [env ..env headT any] - (case (type.anonymous headT) + (case (/.anonymous headT) (^.multi (pattern {.#Apply (|recursion_dummy|) {.#Parameter funcT_idx}}) (n.= 0 (..argument env funcT_idx)) [(dictionary.value 0 env) {.#Some [self_type self_call]}]) diff --git a/stdlib/source/parser/lux/program.lux b/stdlib/source/parser/lux/program.lux index e834136d8..eff42b3ad 100644 --- a/stdlib/source/parser/lux/program.lux +++ b/stdlib/source/parser/lux/program.lux @@ -59,9 +59,6 @@ (function (_ inputs) (loop (again [immediate inputs]) (case (//.result cli immediate) - {try.#Success [remaining output]} - {try.#Success [remaining output]} - {try.#Failure try} (case immediate {.#End} @@ -71,7 +68,10 @@ (do try.monad [[remaining output] (again immediate')] (in [{.#Item to_omit remaining} - output]))))))) + output]))) + + success + success)))) (def .public end (Parser Any) diff --git a/stdlib/source/polytypic/lux/abstract/equivalence.lux b/stdlib/source/polytypic/lux/abstract/equivalence.lux index 4b50b9e2b..983beea4d 100644 --- a/stdlib/source/polytypic/lux/abstract/equivalence.lux +++ b/stdlib/source/polytypic/lux/abstract/equivalence.lux @@ -33,10 +33,11 @@ ["[0]" instant] ["[0]" day] ["[0]" month]] - ["[0]" type (.only) - ["<[1]>" \\parser] - ["[0]" poly (.only polytypic)] - ["[0]" unit]]]] + [meta + ["[0]" type (.only) + ["<[1]>" \\parser] + ["[0]" poly (.only polytypic)] + ["[0]" unit]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/polytypic/lux/abstract/functor.lux b/stdlib/source/polytypic/lux/abstract/functor.lux index 3cc3074b0..e10853519 100644 --- a/stdlib/source/polytypic/lux/abstract/functor.lux +++ b/stdlib/source/polytypic/lux/abstract/functor.lux @@ -16,9 +16,10 @@ [math [number ["n" nat]]] - ["[0]" type (.only) - ["<[1]>" \\parser] - ["[0]" poly (.only polytypic)]]]] + [meta + ["[0]" type (.only) + ["<[1]>" \\parser] + ["[0]" poly (.only polytypic)]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/polytypic/lux/data/format/json.lux b/stdlib/source/polytypic/lux/data/format/json.lux index a177d5712..229abb9c9 100644 --- a/stdlib/source/polytypic/lux/data/format/json.lux +++ b/stdlib/source/polytypic/lux/data/format/json.lux @@ -33,10 +33,11 @@ ["[0]" date] ["[0]" day] ["[0]" month]] - ["[0]" type (.only) - ["<[1]>" \\parser] - ["[0]" unit] - ["[0]" poly (.only polytypic)]]]] + [meta + ["[0]" type (.only) + ["<[1]>" \\parser] + ["[0]" unit] + ["[0]" poly (.only polytypic)]]]]] [\\library ["[0]" / (.only JSON)]]) diff --git a/stdlib/source/specification/lux/abstract/apply.lux b/stdlib/source/specification/lux/abstract/apply.lux index fd4025b0b..9c29ed974 100644 --- a/stdlib/source/specification/lux/abstract/apply.lux +++ b/stdlib/source/specification/lux/abstract/apply.lux @@ -2,7 +2,6 @@ [library [lux (.except) ["_" test (.only Test)] - ["[0]" type] [abstract [monad (.only do)]] [control @@ -10,7 +9,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [meta + ["[0]" type]]]] [\\library ["[0]" / (.only Apply)]] [// diff --git a/stdlib/source/test/lux.lux b/stdlib/source/test/lux.lux index af6864ce3..04f893c8f 100644 --- a/stdlib/source/test/lux.lux +++ b/stdlib/source/test/lux.lux @@ -58,7 +58,6 @@ ["[1][0]" time] ["[1][0]" tool] - ["[1][0]" type] ["[1][0]" world] ["[1][0]" ffi] @@ -1224,7 +1223,6 @@ /time.test /tool.test - /type.test /world.test /ffi.test diff --git a/stdlib/source/test/lux/control/concurrency/frp.lux b/stdlib/source/test/lux/control/concurrency/frp.lux index 232e483d7..8a279bac2 100644 --- a/stdlib/source/test/lux/control/concurrency/frp.lux +++ b/stdlib/source/test/lux/control/concurrency/frp.lux @@ -20,8 +20,9 @@ ["[0]" random] [number ["n" nat]]] - [type - ["[0]" variance]]]] + [meta + [type + ["[0]" variance]]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/test/lux/control/concurrency/semaphore.lux b/stdlib/source/test/lux/control/concurrency/semaphore.lux index eeaac1f53..4bae6dd3f 100644 --- a/stdlib/source/test/lux/control/concurrency/semaphore.lux +++ b/stdlib/source/test/lux/control/concurrency/semaphore.lux @@ -24,8 +24,9 @@ [number ["n" nat] ["[0]" i64]]] - [type - ["[0]" refinement]]]] + [meta + [type + ["[0]" refinement]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/control/region.lux b/stdlib/source/test/lux/control/region.lux index 54dde9289..e0ef106a2 100644 --- a/stdlib/source/test/lux/control/region.lux +++ b/stdlib/source/test/lux/control/region.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - [type (.only sharing)] ["_" test (.only Test)] [abstract [equivalence (.only Equivalence)] @@ -21,7 +20,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [meta + [type (.only sharing)]]]] [\\library ["[0]" / (.only Region) [// diff --git a/stdlib/source/test/lux/data/binary.lux b/stdlib/source/test/lux/data/binary.lux index 52fa6519a..5bd685351 100644 --- a/stdlib/source/test/lux/data/binary.lux +++ b/stdlib/source/test/lux/data/binary.lux @@ -3,7 +3,6 @@ [lux (.except) [ffi (.only)] ["_" test (.only Test)] - ["[0]" type] [abstract [equivalence (.only Equivalence)] ["[0]" monad (.only do)] @@ -44,7 +43,8 @@ ["[0]" rev] ["[0]" frac]]] [meta - ["[0]" symbol]]]] + ["[0]" symbol] + ["[0]" type]]]] [\\library ["[0]" / (.only) (.use "[1]#[0]" equivalence) ["!" \\unsafe] diff --git a/stdlib/source/test/lux/data/collection/tree/finger.lux b/stdlib/source/test/lux/data/collection/tree/finger.lux index 2f9e4c374..7d9faf595 100644 --- a/stdlib/source/test/lux/data/collection/tree/finger.lux +++ b/stdlib/source/test/lux/data/collection/tree/finger.lux @@ -14,7 +14,8 @@ ["[0]" random] [number ["n" nat]]] - [type (.only by_example)]]] + [meta + [type (.only by_example)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/data/format/json.lux b/stdlib/source/test/lux/data/format/json.lux index 7be586b4f..75d616037 100644 --- a/stdlib/source/test/lux/data/format/json.lux +++ b/stdlib/source/test/lux/data/format/json.lux @@ -3,7 +3,6 @@ [lux (.except Variant Record) ["_" test (.only Test)] ["@" target] - ["[0]" meta] [abstract [codec (.except)] [monad (.only do)] @@ -43,8 +42,9 @@ ["[0]/[1]" \\test]] ["[0]" duration ["[0]/[1]" \\test]]] - [type - ["[0]" unit]]]] + ["[0]" meta (.only) + [type + ["[0]" unit]]]]] ["[0]" \\polytypic] ["[0]" \\parser] [\\library diff --git a/stdlib/source/test/lux/data/format/xml.lux b/stdlib/source/test/lux/data/format/xml.lux index 53f9346c0..a01fab3e8 100644 --- a/stdlib/source/test/lux/data/format/xml.lux +++ b/stdlib/source/test/lux/data/format/xml.lux @@ -2,7 +2,6 @@ [library [lux (.except char symbol) ["_" test (.only Test)] - ["[0]" type (.use "[1]#[0]" equivalence)] [abstract [monad (.only do)] [\\specification @@ -27,7 +26,8 @@ [number ["n" nat]]] [meta - ["[0]" symbol (.use "[1]#[0]" equivalence)]]]] + ["[0]" symbol (.use "[1]#[0]" equivalence)] + ["[0]" type (.use "[1]#[0]" equivalence)]]]] ["[0]" \\parser] [\\library ["[0]" / (.use "[1]#[0]" equivalence)]]) diff --git a/stdlib/source/test/lux/data/text.lux b/stdlib/source/test/lux/data/text.lux index 0f7e49f03..ca4866bc4 100644 --- a/stdlib/source/test/lux/data/text.lux +++ b/stdlib/source/test/lux/data/text.lux @@ -2,7 +2,6 @@ [library [lux (.except char) ["_" test (.only Test)] - ["[0]" type] [abstract [monad (.only do)] [equivalence (.only Equivalence)] @@ -50,7 +49,8 @@ ["[0]" ratio]]] [meta ["[0]" location] - ["[0]" symbol]] + ["[0]" symbol] + ["[0]" type]] ["[0]" time (.only) ["[0]" day] ["[0]" month] @@ -62,11 +62,11 @@ ["[1][0]" xml] ["[1][0]" json]] [// - ["[1][0]" type] [macro ["[1][0]" code]] [meta - ["[1][0]" symbol]]]] + ["[1][0]" symbol] + ["[1][0]" type]]]] ["[0]" / ["[1][0]" buffer] ["[1][0]" encoding] diff --git a/stdlib/source/test/lux/debug.lux b/stdlib/source/test/lux/debug.lux index 978f42916..d85343bc9 100644 --- a/stdlib/source/test/lux/debug.lux +++ b/stdlib/source/test/lux/debug.lux @@ -33,7 +33,6 @@ [\\library ["[0]" /]] ["$[0]" // - ["[1][0]" type] [data [format ["[1][0]" json] @@ -45,7 +44,8 @@ ["[1][0]" ratio]]] [meta ["[1][0]" location] - ["[1][0]" symbol]]]) + ["[1][0]" symbol] + ["[1][0]" type]]]) (def can_represent_simple_types (Random Bit) diff --git a/stdlib/source/test/lux/ffi.jvm.lux b/stdlib/source/test/lux/ffi.jvm.lux index 581d89f2d..13c9f2fcd 100644 --- a/stdlib/source/test/lux/ffi.jvm.lux +++ b/stdlib/source/test/lux/ffi.jvm.lux @@ -2,8 +2,6 @@ [library [lux (.except) ["_" test (.only Test)] - ["[0]" type (.use "[1]#[0]" equivalence)] - ["[0]" meta] ["[0]" debug] ["[0]" static] [abstract @@ -31,6 +29,8 @@ ["n" nat] ["i" int (.use "[1]#[0]" equivalence)] ["f" frac (.use "[1]#[0]" equivalence)]]] + ["[0]" meta (.only) + ["[0]" type (.use "[1]#[0]" equivalence)]] [target ["[0]" jvm ["[1]" type (.use "[1]#[0]" equivalence)]]]]] diff --git a/stdlib/source/test/lux/math/modular.lux b/stdlib/source/test/lux/math/modular.lux index c3a1b8f53..60734f83d 100644 --- a/stdlib/source/test/lux/math/modular.lux +++ b/stdlib/source/test/lux/math/modular.lux @@ -2,7 +2,6 @@ [library [lux (.except) ["_" test (.only Test)] - ["[0]" type (.use "[1]#[0]" equivalence)] [abstract [monad (.only do)] [\\specification @@ -21,7 +20,9 @@ [math ["[0]" random (.only Random)] [number - ["i" int]]]]] + ["i" int]]] + [meta + ["[0]" type (.use "[1]#[0]" equivalence)]]]] ["$[0]" // ["[1]" modulus]] [\\library diff --git a/stdlib/source/test/lux/meta.lux b/stdlib/source/test/lux/meta.lux index 51b89ebfc..e5166d7ee 100644 --- a/stdlib/source/test/lux/meta.lux +++ b/stdlib/source/test/lux/meta.lux @@ -2,7 +2,6 @@ [library [lux (.except) ["_" test (.only Test)] - ["[0]" type (.use "[1]#[0]" equivalence)] [abstract [equivalence (.only Equivalence)] [monad (.only do)] @@ -31,12 +30,14 @@ ["[0]" location] ["[0]" symbol (.use "[1]#[0]" equivalence)]]]] [\\library - ["[0]" /]] + ["[0]" / (.only) + ["[0]" type (.use "[1]#[0]" equivalence)]]] ["[0]" / ["[1][0]" location] ["[1][0]" symbol] ["[1][0]" configuration] - ["[1][0]" version]]) + ["[1][0]" version] + ["[1][0]" type]]) (def !expect (template (_ <pattern> <value>) @@ -1020,4 +1021,5 @@ /symbol.test /configuration.test /version.test + /type.test ))) diff --git a/stdlib/source/test/lux/type.lux b/stdlib/source/test/lux/meta/type.lux index 9f753b1d0..9f753b1d0 100644 --- a/stdlib/source/test/lux/type.lux +++ b/stdlib/source/test/lux/meta/type.lux diff --git a/stdlib/source/test/lux/type/check.lux b/stdlib/source/test/lux/meta/type/check.lux index 89aa98285..b630d37a1 100644 --- a/stdlib/source/test/lux/type/check.lux +++ b/stdlib/source/test/lux/meta/type/check.lux @@ -2,7 +2,6 @@ [library [lux (.except symbol type) ["_" test (.only Test)] - ["[0]" type (.use "[1]#[0]" equivalence)] [abstract ["[0]" monad (.only do)] [\\specification @@ -29,7 +28,8 @@ [number ["n" nat]]]]] [\\library - ["[0]" /]]) + ["[0]" / (.only) + ["/[1]" // (.use "[1]#[0]" equivalence)]]]) ... TODO: Remove the following 3 definitions ASAP. //.type already exists... (def short @@ -203,7 +203,7 @@ (case (/.result /.fresh_context (do /.monad [[var_id var_type] /.var] - (in (type#= var_type {.#Var var_id})))) + (in (//#= var_type {.#Var var_id})))) {try.#Success verdict} verdict {try.#Failure error} false)) (do random.monad @@ -663,7 +663,7 @@ (do [! random.monad] [nominal ..nominal [name/0 name/1] (..non_twins text#= (random.upper_case 10)) - [parameter/0 parameter/1] (..non_twins type#= ..nominal) + [parameter/0 parameter/1] (..non_twins //#= ..nominal) left_name ..symbol right_name ..symbol ring_tail_size (at ! each (n.% 10) random.nat)] @@ -734,8 +734,8 @@ (and (|> (do /.monad [[var_id varT] /.var cleanedT (/.clean (list) (type_shape varT))] - (in (type#= (type_shape varT) - cleanedT))) + (in (//#= (type_shape varT) + cleanedT))) (/.result /.fresh_context) (try.else false)) (|> (do /.monad @@ -743,8 +743,8 @@ [_ replacementT] /.existential _ (/.check varT replacementT) cleanedT (/.clean (list) (type_shape varT))] - (in (type#= (type_shape replacementT) - cleanedT))) + (in (//#= (type_shape replacementT) + cleanedT))) (/.result /.fresh_context) (try.else false)) )))) diff --git a/stdlib/source/test/lux/type/dynamic.lux b/stdlib/source/test/lux/meta/type/dynamic.lux index 595a1da05..595a1da05 100644 --- a/stdlib/source/test/lux/type/dynamic.lux +++ b/stdlib/source/test/lux/meta/type/dynamic.lux diff --git a/stdlib/source/test/lux/type/implicit.lux b/stdlib/source/test/lux/meta/type/implicit.lux index 299ae7464..299ae7464 100644 --- a/stdlib/source/test/lux/type/implicit.lux +++ b/stdlib/source/test/lux/meta/type/implicit.lux diff --git a/stdlib/source/test/lux/type/primitive.lux b/stdlib/source/test/lux/meta/type/primitive.lux index 7b4500c00..7b4500c00 100644 --- a/stdlib/source/test/lux/type/primitive.lux +++ b/stdlib/source/test/lux/meta/type/primitive.lux diff --git a/stdlib/source/test/lux/type/quotient.lux b/stdlib/source/test/lux/meta/type/quotient.lux index 72d39b19d..72d39b19d 100644 --- a/stdlib/source/test/lux/type/quotient.lux +++ b/stdlib/source/test/lux/meta/type/quotient.lux diff --git a/stdlib/source/test/lux/type/refinement.lux b/stdlib/source/test/lux/meta/type/refinement.lux index 711d0401f..711d0401f 100644 --- a/stdlib/source/test/lux/type/refinement.lux +++ b/stdlib/source/test/lux/meta/type/refinement.lux diff --git a/stdlib/source/test/lux/type/resource.lux b/stdlib/source/test/lux/meta/type/resource.lux index a23f1cacf..a23f1cacf 100644 --- a/stdlib/source/test/lux/type/resource.lux +++ b/stdlib/source/test/lux/meta/type/resource.lux diff --git a/stdlib/source/test/lux/type/unit.lux b/stdlib/source/test/lux/meta/type/unit.lux index b52ddd921..b52ddd921 100644 --- a/stdlib/source/test/lux/type/unit.lux +++ b/stdlib/source/test/lux/meta/type/unit.lux diff --git a/stdlib/source/test/lux/type/unit/scale.lux b/stdlib/source/test/lux/meta/type/unit/scale.lux index adc3523b5..adc3523b5 100644 --- a/stdlib/source/test/lux/type/unit/scale.lux +++ b/stdlib/source/test/lux/meta/type/unit/scale.lux diff --git a/stdlib/source/test/lux/type/variance.lux b/stdlib/source/test/lux/meta/type/variance.lux index 911c68067..911c68067 100644 --- a/stdlib/source/test/lux/type/variance.lux +++ b/stdlib/source/test/lux/meta/type/variance.lux diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/inference.lux b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/inference.lux index d862aaf5e..987a00507 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/inference.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/inference.lux @@ -24,9 +24,9 @@ ["[0]" symbol ["$[1]" \\test]] ["[0]" configuration - ["$[1]" \\test]]] - ["[0]" type (.use "[1]#[0]" equivalence) - ["[0]" check (.only Check)]]]] + ["$[1]" \\test]] + ["[0]" type (.use "[1]#[0]" equivalence) + ["[0]" check (.only Check)]]]]] [\\library ["[0]" / (.only) ["/[1]" // (.only) diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/scope.lux b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/scope.lux index 8959c72c9..5fb2ad044 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/scope.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/scope.lux @@ -17,8 +17,9 @@ ["[0]" random (.only Random)] [number ["n" nat]]] - ["[0]" type - ["$[1]" \\test]]]] + [meta + ["[0]" type + ["$[1]" \\test]]]]] [\\library ["[0]" / (.only) ["/[1]" // (.only) diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/type.lux b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/type.lux index b67b6bd4a..805939c68 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/type.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/type.lux @@ -13,9 +13,9 @@ ["[0]" random (.only Random)]] [meta ["[0]" configuration - ["$[1]" \\test]]] - ["[0]" type (.use "[1]#[0]" equivalence) - ["[0]" check]]]] + ["$[1]" \\test]] + ["[0]" type (.use "[1]#[0]" equivalence) + ["[0]" check]]]]] [\\library ["[0]" / (.only) ["/[1]" // (.only) diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis.lux index 8e4113010..3c0823345 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis.lux @@ -18,8 +18,9 @@ ["[0]" random] [number ["n" nat]]] - ["[0]" type (.use "[1]#[0]" equivalence) - ["[0]" check]]]] + [meta + ["[0]" type (.use "[1]#[0]" equivalence) + ["[0]" check]]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux index 8f58207b2..e5254f4b4 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux @@ -15,8 +15,9 @@ ["[0]" code]] [math ["[0]" random]] - ["[0]" type (.use "[1]#[0]" equivalence) - ["[0]" check]]]] + [meta + ["[0]" type (.use "[1]#[0]" equivalence) + ["[0]" check]]]]] [\\library ["[0]" / (.only) ["/[1]" // (.only) diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/complex.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/complex.lux index 0454ecfb0..31e3355f2 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/complex.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/complex.lux @@ -29,9 +29,9 @@ ["[0]" symbol (.only) ["$[1]" \\test]] ["[0]" configuration - ["$[1]" \\test]]] - ["[0]" type (.use "[1]#[0]" equivalence) - ["[0]" check]]]] + ["$[1]" \\test]] + ["[0]" type (.use "[1]#[0]" equivalence) + ["[0]" check]]]]] [\\library ["[0]" / (.only) ["/[1]" // (.only) diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux index 16b3e1b60..1a865d0d6 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux @@ -22,10 +22,10 @@ ["n" nat]]] [meta ["[0]" symbol - ["$[1]" \\test]]] - ["[0]" type (.use "[1]#[0]" equivalence) - ["$[1]" \\test] - ["[0]" check]]]] + ["$[1]" \\test]] + ["[0]" type (.use "[1]#[0]" equivalence) + ["$[1]" \\test] + ["[0]" check]]]]] [\\library ["[0]" / (.only) ["/[1]" // (.only) diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/reference.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/reference.lux index fd64eff38..d55bc1c2b 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/reference.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/reference.lux @@ -13,8 +13,9 @@ ["[0]" text]] [math ["[0]" random]] - ["[0]" type (.use "[1]#[0]" equivalence) - ["$[1]" \\test]]]] + [meta + ["[0]" type (.use "[1]#[0]" equivalence) + ["$[1]" \\test]]]]] [\\library ["[0]" / (.only) ["/[1]" // diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/simple.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/simple.lux index ebc162c9e..5f7769239 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/simple.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/simple.lux @@ -2,7 +2,6 @@ [library [lux (.except) ["_" test (.only Test)] - ["[0]" type (.use "[1]#[0]" equivalence)] [abstract [monad (.only do)]] [control @@ -13,6 +12,7 @@ [math ["[0]" random]] [meta + ["[0]" type (.use "[1]#[0]" equivalence)] ["[0]" configuration ["$[1]" \\test]]]]] [\\library @@ -88,13 +88,13 @@ (`` (all _.and (_.coverage [/.unit] (..analysis state module .Any /.unit - (|>> (pipe.case (pattern (/analysis.unit)) true _ false)))) + (|>> (pipe.case (pattern (/analysis.unit)) true _ false)))) (~~ (with_template [<analysis> <type> <random> <tag>] [(do ! [sample <random>] (_.coverage [<analysis>] (..analysis state module <type> (<analysis> sample) - ((..analysis? <type> <tag>) sample))))] + ((..analysis? <type> <tag>) sample))))] [/.bit .Bit random.bit /analysis.bit] [/.nat .Nat random.nat /analysis.nat] diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux index 19d27a9b6..7507a6da6 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux @@ -14,11 +14,11 @@ ["[0]" atom]]] [data ["[0]" product]] - ["[0]" type (.use "[1]#[0]" equivalence)] [macro ["[0]" code]] [meta - ["[0]" symbol]]] + ["[0]" symbol] + ["[0]" type (.use "[1]#[0]" equivalence)]]] [//// [analysis ["_[0]" primitive]]] diff --git a/stdlib/source/test/lux/world/file/watch.lux b/stdlib/source/test/lux/world/file/watch.lux index 36f1f444b..6179b2164 100644 --- a/stdlib/source/test/lux/world/file/watch.lux +++ b/stdlib/source/test/lux/world/file/watch.lux @@ -55,8 +55,8 @@ ..concern) .let [[left left?] left [right right?] right]] - (_.coverage [/.also] - (let [composition (/.also left right)] + (_.coverage [/.and] + (let [composition (/.and left right)] (and (left? composition) (right? composition))))) (_.coverage [/.all] diff --git a/stdlib/source/unsafe/lux/data/collection/array.lux b/stdlib/source/unsafe/lux/data/collection/array.lux index f7d7aebfb..a4c3bf01e 100644 --- a/stdlib/source/unsafe/lux/data/collection/array.lux +++ b/stdlib/source/unsafe/lux/data/collection/array.lux @@ -7,8 +7,9 @@ [data [collection ["[0]" list]]] - [type - ["[0]" variance]]]]) + [meta + [type + ["[0]" variance]]]]]) (def .public type "#Array") |