From 0fcb373ed1cdc2750f02e5535d29569dd8ae5a5b Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Sun, 17 Mar 2019 22:19:33 -0400 Subject: Minor improvements. --- stdlib/source/lux.lux | 42 ++++++++++++++++++------------------------ 1 file changed, 18 insertions(+), 24 deletions(-) (limited to 'stdlib/source/lux.lux') diff --git a/stdlib/source/lux.lux b/stdlib/source/lux.lux index 549d63112..323615249 100644 --- a/stdlib/source/lux.lux +++ b/stdlib/source/lux.lux @@ -5356,37 +5356,31 @@ (-> Type Code) (case type (#Primitive name params) - (` (#Primitive (~ (text$ name)) (~ (untemplate-list (list;map type-to-code params))))) + (` (#.Primitive (~ (text$ name)) (~ (untemplate-list (list;map type-to-code params))))) (^template [] ( left right) (` ( (~ (type-to-code left)) (~ (type-to-code right))))) - ([#Sum] [#Product]) - - (#Function in out) - (` (#Function (~ (type-to-code in)) (~ (type-to-code out)))) - - (#Parameter idx) - (` (#Parameter (~ (nat$ idx)))) - - (#Var id) - (` (#Var (~ (nat$ id)))) + ([#.Sum] [#.Product] + [#.Function] + [#.Apply]) - (#Ex id) - (` (#Ex (~ (nat$ id)))) - - (#UnivQ env type) - (let [env' (untemplate-list (list;map type-to-code env))] - (` (#UnivQ (~ env') (~ (type-to-code type))))) + (^template [] + ( id) + (` ( (~ (nat$ id))))) + ([#.Parameter] [#.Var] [#.Ex]) - (#ExQ env type) - (let [env' (untemplate-list (list;map type-to-code env))] - (` (#ExQ (~ env') (~ (type-to-code type))))) + (^template [] + ( env type) + (let [env' (untemplate-list (list;map type-to-code env))] + (` ( (~ env') (~ (type-to-code type)))))) + ([#.UnivQ] [#.ExQ]) - (#Apply arg fun) - (` (#Apply (~ (type-to-code arg)) (~ (type-to-code fun)))) - - (#Named [module name] type) + (#Named [module name] anonymous) + ## TODO: Generate the explicit type definition instead of using + ## the "identifier$" shortcut below. + ## (` (#.Named [(~ (text$ module)) (~ (text$ name))] + ## (~ (type-to-code anonymous)))) (identifier$ [module name]))) (macro: #export (loop tokens) -- cgit v1.2.3