aboutsummaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorEduardo Julian2015-09-15 00:59:45 -0400
committerEduardo Julian2015-09-15 00:59:45 -0400
commit79f2b2d51b8210d0a2bc81344ea82b4e5cbc7429 (patch)
treebf2b8e5e58f8845dce3173557d7220e38279e055 /source
parent5dafb9ad900f990a14e280db2e00fb668a6606b9 (diff)
- The Macro type now flows from lux.lux into the compiler, to achieve a perfect match without having the write the type in 2 places.
- Made the "Host" type fully opaque to avoid letting users manipulate instances.
Diffstat (limited to '')
-rw-r--r--source/lux.lux23
1 files changed, 3 insertions, 20 deletions
diff --git a/source/lux.lux b/source/lux.lux
index 4571529a0..e155af794 100644
--- a/source/lux.lux
+++ b/source/lux.lux
@@ -77,6 +77,7 @@
## (#LambdaT Type Type)
## (#BoundT Int)
## (#VarT Int)
+## (#ExT Int)
## (#UnivQ (List Type) Type)
## (#ExQ (List Type) Type)
## (#AppT Type Type)
@@ -272,24 +273,6 @@
Text])])))
(_lux_export Source)
-## (deftype Host
-## (& #writer (^ org.objectweb.asm.ClassWriter)
-## #loader (^ java.net.URLClassLoader)
-## #classes (^ clojure.lang.Atom)
-## #catching (List Text)))
-(_lux_def Host
- (#NamedT ["lux" "Host"]
- (#TupleT (#Cons [## "lux;writer"
- (#DataT "org.objectweb.asm.ClassWriter" #Nil)
- (#Cons [## "lux;loader"
- (#DataT "java.lang.ClassLoader" #Nil)
- (#Cons [## "lux;classes"
- (#DataT "clojure.lang.Atom" #Nil)
- (#Cons [## "lux;catching"
- (#AppT List Text)
- #Nil])])])]))))
-(_lux_declare-tags [#writer #loader #classes] Host)
-
## (deftype (DefData' m)
## (| (#TypeD Type)
## (#ValueD (, Type Unit))
@@ -371,7 +354,7 @@
## #expected Type
## #seed Int
## #eval? Bool
-## #host Host
+## #host Void
## ))
(_lux_def Compiler
(#NamedT ["lux" "Compiler"]
@@ -396,7 +379,7 @@
(#Cons ## "lux;eval?"
Bool
(#Cons ## "lux;host"
- Host
+ Void
#Nil)))))))))))
Void)))
(_lux_export Compiler)