From 62b3abfcc014ca1c19d62aacdd497f6a250b372c Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Sun, 25 Jul 2021 03:12:17 -0400 Subject: Better syntax for "library/lux.^multi". --- stdlib/source/poly/lux/abstract/equivalence.lux | 33 ++++++++-------- stdlib/source/poly/lux/data/format/json.lux | 52 ++++++++++++------------- 2 files changed, 42 insertions(+), 43 deletions(-) (limited to 'stdlib/source/poly') diff --git a/stdlib/source/poly/lux/abstract/equivalence.lux b/stdlib/source/poly/lux/abstract/equivalence.lux index 080e64af0..15795ffcf 100644 --- a/stdlib/source/poly/lux/abstract/equivalence.lux +++ b/stdlib/source/poly/lux/abstract/equivalence.lux @@ -4,9 +4,8 @@ [abstract [monad (#+ Monad do)]] [control - ["p" parser - ["<.>" type] - ["s" code (#+ Parser)]]] + ["<>" parser + ["<.>" type]]] [data ["." product] ["." bit] @@ -43,14 +42,14 @@ ["." /]]) (poly: #export equivalence - (`` (do {! p.monad} + (`` (do {! <>.monad} [#let [g!_ (code.local_identifier "_____________")] *env* .env inputT .peek #let [@Equivalence (: (-> Type Code) (function (_ type) (` ((~! /.Equivalence) (~ (poly.to_code *env* type))))))]] - ($_ p.either + ($_ <>.either ## Basic types (~~ (template [ ] [(do ! @@ -68,8 +67,8 @@ ## Composite types (~~ (template [ ] [(do ! - [[_ argC] (.apply (p.and (.exactly ) - equivalence))] + [[_ argC] (.applied (<>.and (.exactly ) + equivalence))] (wrap (` (: (~ (@Equivalence inputT)) ( (~ argC))))))] @@ -82,10 +81,10 @@ [tree.Tree (~! tree.equivalence)] )) (do ! - [[_ _ valC] (.apply ($_ p.and - (.exactly dictionary.Dictionary) - .any - equivalence))] + [[_ _ valC] (.applied ($_ <>.and + (.exactly dictionary.Dictionary) + .any + equivalence))] (wrap (` (: (~ (@Equivalence inputT)) ((~! dictionary.equivalence) (~ valC)))))) ## Models @@ -102,13 +101,13 @@ [month.Month month.equivalence] )) (do ! - [_ (.apply (p.and (.exactly unit.Qty) - .any))] + [_ (.applied (<>.and (.exactly unit.Qty) + .any))] (wrap (` (: (~ (@Equivalence inputT)) unit.equivalence)))) ## Variants (do ! - [members (.variant (p.many equivalence)) + [members (.variant (<>.many equivalence)) #let [last (dec (list.size members)) g!_ (code.local_identifier "_____________") g!left (code.local_identifier "_____________left") @@ -129,7 +128,7 @@ #0)))))) ## Tuples (do ! - [g!eqs (.tuple (p.many equivalence)) + [g!eqs (.tuple (<>.many equivalence)) #let [g!_ (code.local_identifier "_____________") indices (list.indices (list.size g!eqs)) g!lefts (list\map (|>> nat\encode (text\compose "left") code.local_identifier) indices) @@ -149,7 +148,7 @@ .recursive_self ## Type applications (do ! - [[funcC argsC] (.apply (p.and equivalence (p.many equivalence)))] + [[funcC argsC] (.applied (<>.and equivalence (<>.many equivalence)))] (wrap (` ((~ funcC) (~+ argsC))))) ## Parameters .parameter @@ -164,6 +163,6 @@ .recursive_call ## If all else fails... (|> .any - (\ ! map (|>> %.type (format "Cannot create Equivalence for: ") p.fail)) + (\ ! map (|>> %.type (format "Cannot create Equivalence for: ") <>.fail)) (\ ! join)) )))) diff --git a/stdlib/source/poly/lux/data/format/json.lux b/stdlib/source/poly/lux/data/format/json.lux index d7409df9f..5c63c58e1 100644 --- a/stdlib/source/poly/lux/data/format/json.lux +++ b/stdlib/source/poly/lux/data/format/json.lux @@ -135,36 +135,36 @@