aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source
diff options
context:
space:
mode:
authorEduardo Julian2018-08-11 23:27:32 -0400
committerEduardo Julian2018-08-11 23:27:32 -0400
commit453ab9f67873bb022acadf4c0f5c1e635c7d5794 (patch)
treefa2419e2bb78b37e75f2ac070e0916776116638d /stdlib/source
parent425148d29846ba507599b220d4df05c805e8d38a (diff)
- Fixed common translation tests for JVM.
- Fixed a bug in "lux text <". - Small optimizations to old LuxC.
Diffstat (limited to 'stdlib/source')
-rw-r--r--stdlib/source/lux/compiler/default/phase/synthesis.lux34
-rw-r--r--stdlib/source/lux/math/random.lux3
2 files changed, 33 insertions, 4 deletions
diff --git a/stdlib/source/lux/compiler/default/phase/synthesis.lux b/stdlib/source/lux/compiler/default/phase/synthesis.lux
index 29c2189c3..bf60c9798 100644
--- a/stdlib/source/lux/compiler/default/phase/synthesis.lux
+++ b/stdlib/source/lux/compiler/default/phase/synthesis.lux
@@ -3,8 +3,11 @@
[control [monad (#+ do)]]
[data
[error (#+ Error)]
+ ["." text
+ format]
[collection
- ["dict" dictionary (#+ Dictionary)]]]]
+ [list ("list/." Functor<List>)]
+ ["." dictionary (#+ Dictionary)]]]]
["." //
["." analysis (#+ Environment Arity Analysis)]
["." extension (#+ Extension)]
@@ -21,7 +24,7 @@
(def: #export fresh-resolver
Resolver
- (dict.new reference.Hash<Variable>))
+ (dictionary.new reference.Hash<Variable>))
(def: #export init
State
@@ -268,3 +271,30 @@
[function/abstraction #..Function #..Abstraction]
[function/apply #..Function #..Apply]
)
+
+(def: #export (%synthesis value)
+ (Format Synthesis)
+ (case value
+ (^template [<pattern> <format>]
+ (^ (<pattern> value))
+ (<format> value))
+ ([..bit %b]
+ [..f64 %f]
+ [..text %t])
+
+ (^ (..i64 value))
+ (%n (.nat value))
+
+ (^ (..variant [lefts right? content]))
+ (|> (%synthesis content)
+ (format (%n lefts) " " (%b right?) " ")
+ (text.enclose ["(" ")"]))
+
+ (^ (..tuple members))
+ (|> members
+ (list/map %synthesis)
+ (text.join-with " ")
+ (text.enclose ["[" "]"]))
+
+ _
+ "???"))
diff --git a/stdlib/source/lux/math/random.lux b/stdlib/source/lux/math/random.lux
index eab1ae04c..92eced24d 100644
--- a/stdlib/source/lux/math/random.lux
+++ b/stdlib/source/lux/math/random.lux
@@ -25,8 +25,7 @@
[tree
["." finger (#+ Tree)]]]]
[type
- [refinement (#+ Refiner Refined)]]
- ])
+ [refinement (#+ Refiner Refined)]]])
(type: #export #rec PRNG
{#.doc "An abstract way to represent any PRNG."}