aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--luxc/src/lux/analyser.clj9
-rw-r--r--luxc/src/lux/analyser/case.clj6
-rw-r--r--luxc/src/lux/analyser/lux.clj4
-rw-r--r--luxc/src/lux/analyser/module.clj4
-rw-r--r--luxc/src/lux/analyser/proc/common.clj22
-rw-r--r--luxc/src/lux/analyser/proc/js.clj93
-rw-r--r--luxc/src/lux/analyser/proc/jvm.clj16
-rw-r--r--luxc/src/lux/analyser/record.clj2
-rw-r--r--luxc/src/lux/base.clj4
-rw-r--r--luxc/src/lux/compiler/jvm/proc/host.clj2
-rw-r--r--luxc/src/lux/host.clj2
-rw-r--r--luxc/src/lux/type.clj24
-rw-r--r--luxc/src/lux/type/host.clj8
-rw-r--r--new-luxc/source/luxc/cache/io.lux12
-rw-r--r--new-luxc/source/luxc/io.jvm.lux4
-rw-r--r--new-luxc/source/luxc/lang/analysis/type.lux2
-rw-r--r--new-luxc/source/luxc/lang/extension.lux10
-rw-r--r--new-luxc/source/luxc/lang/extension/analysis/common.lux10
-rw-r--r--new-luxc/source/luxc/lang/extension/analysis/host.jvm.lux10
-rw-r--r--new-luxc/source/luxc/lang/extension/statement.lux6
-rw-r--r--new-luxc/source/luxc/lang/host.jvm.lux12
-rw-r--r--new-luxc/source/luxc/lang/host/common-lisp.lux4
-rw-r--r--new-luxc/source/luxc/lang/host/jvm.lux2
-rw-r--r--new-luxc/source/luxc/lang/host/php.lux10
-rw-r--r--new-luxc/source/luxc/lang/host/python.lux6
-rw-r--r--new-luxc/source/luxc/lang/host/r.lux4
-rw-r--r--new-luxc/source/luxc/lang/host/scheme.lux4
-rw-r--r--new-luxc/source/luxc/lang/init.lux53
-rw-r--r--new-luxc/source/luxc/lang/translation.lux6
-rw-r--r--new-luxc/source/luxc/lang/translation/common-lisp.lux20
-rw-r--r--new-luxc/source/luxc/lang/translation/common-lisp/eval.jvm.lux18
-rw-r--r--new-luxc/source/luxc/lang/translation/common-lisp/runtime.jvm.lux2
-rw-r--r--new-luxc/source/luxc/lang/translation/common-lisp/statement.jvm.lux2
-rw-r--r--new-luxc/source/luxc/lang/translation/js.lux22
-rw-r--r--new-luxc/source/luxc/lang/translation/js/eval.jvm.lux8
-rw-r--r--new-luxc/source/luxc/lang/translation/js/runtime.jvm.lux2
-rw-r--r--new-luxc/source/luxc/lang/translation/js/statement.jvm.lux2
-rw-r--r--new-luxc/source/luxc/lang/translation/jvm/common.jvm.lux12
-rw-r--r--new-luxc/source/luxc/lang/translation/jvm/eval.jvm.lux2
-rw-r--r--new-luxc/source/luxc/lang/translation/jvm/statement.jvm.lux6
-rw-r--r--new-luxc/source/luxc/lang/translation/lua.lux20
-rw-r--r--new-luxc/source/luxc/lang/translation/lua/eval.jvm.lux10
-rw-r--r--new-luxc/source/luxc/lang/translation/lua/runtime.jvm.lux2
-rw-r--r--new-luxc/source/luxc/lang/translation/lua/statement.jvm.lux2
-rw-r--r--new-luxc/source/luxc/lang/translation/php.lux20
-rw-r--r--new-luxc/source/luxc/lang/translation/php/eval.jvm.lux14
-rw-r--r--new-luxc/source/luxc/lang/translation/php/runtime.jvm.lux2
-rw-r--r--new-luxc/source/luxc/lang/translation/php/statement.jvm.lux2
-rw-r--r--new-luxc/source/luxc/lang/translation/python.lux20
-rw-r--r--new-luxc/source/luxc/lang/translation/python/eval.jvm.lux12
-rw-r--r--new-luxc/source/luxc/lang/translation/python/runtime.jvm.lux2
-rw-r--r--new-luxc/source/luxc/lang/translation/python/statement.jvm.lux2
-rw-r--r--new-luxc/source/luxc/lang/translation/r.lux20
-rw-r--r--new-luxc/source/luxc/lang/translation/r/eval.jvm.lux14
-rw-r--r--new-luxc/source/luxc/lang/translation/r/runtime.jvm.lux2
-rw-r--r--new-luxc/source/luxc/lang/translation/r/statement.jvm.lux2
-rw-r--r--new-luxc/source/luxc/lang/translation/ruby.lux22
-rw-r--r--new-luxc/source/luxc/lang/translation/ruby/eval.jvm.lux12
-rw-r--r--new-luxc/source/luxc/lang/translation/ruby/runtime.jvm.lux2
-rw-r--r--new-luxc/source/luxc/lang/translation/ruby/statement.jvm.lux2
-rw-r--r--new-luxc/source/luxc/lang/translation/scheme.lux20
-rw-r--r--new-luxc/source/luxc/lang/translation/scheme/eval.jvm.lux18
-rw-r--r--new-luxc/source/luxc/lang/translation/scheme/runtime.jvm.lux2
-rw-r--r--new-luxc/source/luxc/lang/translation/scheme/statement.jvm.lux2
-rw-r--r--new-luxc/source/luxc/repl.lux32
-rw-r--r--new-luxc/test/test/luxc/common.lux140
-rw-r--r--new-luxc/test/test/luxc/lang/analysis/procedure/common.lux8
-rw-r--r--new-luxc/test/test/luxc/lang/analysis/procedure/host.jvm.lux8
-rw-r--r--new-luxc/test/test/luxc/lang/translation/js.lux2
-rw-r--r--new-luxc/test/test/luxc/lang/translation/jvm.lux2
-rw-r--r--new-luxc/test/test/luxc/lang/translation/structure.lux54
-rw-r--r--stdlib/source/lux.lux92
-rw-r--r--stdlib/source/lux/cli.lux6
-rw-r--r--stdlib/source/lux/concurrency/actor.lux4
-rw-r--r--stdlib/source/lux/concurrency/atom.lux2
-rw-r--r--stdlib/source/lux/concurrency/frp.lux12
-rw-r--r--stdlib/source/lux/concurrency/promise.lux6
-rw-r--r--stdlib/source/lux/concurrency/semaphore.lux22
-rw-r--r--stdlib/source/lux/concurrency/stm.lux30
-rw-r--r--stdlib/source/lux/concurrency/task.lux4
-rw-r--r--stdlib/source/lux/control/concatenative.lux4
-rw-r--r--stdlib/source/lux/control/parser.lux4
-rw-r--r--stdlib/source/lux/control/pipe.lux2
-rw-r--r--stdlib/source/lux/control/region.lux6
-rw-r--r--stdlib/source/lux/control/state.lux8
-rw-r--r--stdlib/source/lux/control/thread.lux2
-rw-r--r--stdlib/source/lux/control/writer.lux2
-rw-r--r--stdlib/source/lux/data/bit.lux4
-rw-r--r--stdlib/source/lux/data/coll/sequence.lux2
-rw-r--r--stdlib/source/lux/data/format/json.lux14
-rw-r--r--stdlib/source/lux/data/format/xml.lux4
-rw-r--r--stdlib/source/lux/data/number.lux6
-rw-r--r--stdlib/source/lux/data/text/lexer.lux4
-rw-r--r--stdlib/source/lux/data/text/regex.lux2
-rw-r--r--stdlib/source/lux/host.jvm.lux16
-rw-r--r--stdlib/source/lux/io.lux12
-rw-r--r--stdlib/source/lux/lang.lux2
-rw-r--r--stdlib/source/lux/lang/analysis/case.lux2
-rw-r--r--stdlib/source/lux/lang/analysis/primitive.lux2
-rw-r--r--stdlib/source/lux/lang/analysis/structure.lux2
-rw-r--r--stdlib/source/lux/lang/analysis/type.lux2
-rw-r--r--stdlib/source/lux/lang/init.lux6
-rw-r--r--stdlib/source/lux/lang/module.lux12
-rw-r--r--stdlib/source/lux/lang/syntax.lux2
-rw-r--r--stdlib/source/lux/lang/type.lux4
-rw-r--r--stdlib/source/lux/lang/type/check.lux16
-rw-r--r--stdlib/source/lux/macro.lux14
-rw-r--r--stdlib/source/lux/macro/poly.lux14
-rw-r--r--stdlib/source/lux/macro/poly/equality.lux2
-rw-r--r--stdlib/source/lux/macro/poly/json.lux4
-rw-r--r--stdlib/source/lux/macro/syntax.lux4
-rw-r--r--stdlib/source/lux/macro/syntax/common/reader.lux4
-rw-r--r--stdlib/source/lux/math/constructive.lux6
-rw-r--r--stdlib/source/lux/math/random.lux6
-rw-r--r--stdlib/source/lux/test.lux6
-rw-r--r--stdlib/source/lux/type/abstract.lux4
-rw-r--r--stdlib/source/lux/type/resource.lux6
-rw-r--r--stdlib/source/lux/world/blob.jvm.lux10
-rw-r--r--stdlib/source/lux/world/console.lux4
-rw-r--r--stdlib/source/lux/world/file.lux2
-rw-r--r--stdlib/source/lux/world/net/tcp.jvm.lux10
-rw-r--r--stdlib/source/lux/world/net/udp.jvm.lux6
-rw-r--r--stdlib/test/test/lux/concurrency/frp.lux2
-rw-r--r--stdlib/test/test/lux/concurrency/semaphore.lux6
-rw-r--r--stdlib/test/test/lux/control/parser.lux2
-rw-r--r--stdlib/test/test/lux/control/region.lux2
-rw-r--r--stdlib/test/test/lux/lang/analysis/primitive.lux4
-rw-r--r--stdlib/test/test/lux/lang/type.lux4
-rw-r--r--stdlib/test/test/lux/lang/type/check.lux32
-rw-r--r--stdlib/test/test/lux/type/object/interface.lux4
-rw-r--r--stdlib/test/test/lux/type/object/protocol.lux24
-rw-r--r--stdlib/test/test/lux/world/blob.lux2
132 files changed, 636 insertions, 787 deletions
diff --git a/luxc/src/lux/analyser.clj b/luxc/src/lux/analyser.clj
index 29c9e7588..641dfa947 100644
--- a/luxc/src/lux/analyser.clj
+++ b/luxc/src/lux/analyser.clj
@@ -12,8 +12,7 @@
[module :as &&module]
[parser :as &&a-parser])
(lux.analyser.proc [common :as &&common]
- [jvm :as &&jvm]
- [js :as &&js])))
+ [jvm :as &&jvm])))
;; [Utils]
(defn analyse-variant+ [analyse exo-type ident values]
@@ -172,10 +171,6 @@
(|do [_ &/jvm-host]
(&&jvm/analyse-host analyse exo-type compilers ?procedure parameters))
- (.startsWith ^String ?procedure "js")
- (|do [_ &/js-host]
- (&&js/analyse-host analyse exo-type ?procedure parameters))
-
:else
(&&common/analyse-proc analyse exo-type ?procedure parameters))))
@@ -199,7 +194,7 @@
;; [Resources]
(defn analyse [optimize eval! compile-module compilers]
(|do [asts &parser/parse]
- (&/flat-map% (partial analyse-ast optimize eval! compile-module compilers &type/Bottom) asts)))
+ (&/flat-map% (partial analyse-ast optimize eval! compile-module compilers &type/Nothing) asts)))
(defn clean-output [?var analysis]
(|do [:let [[[?output-type ?output-cursor] ?output-term] analysis]
diff --git a/luxc/src/lux/analyser/case.clj b/luxc/src/lux/analyser/case.clj
index ff00f1aa8..2694c9447 100644
--- a/luxc/src/lux/analyser/case.clj
+++ b/luxc/src/lux/analyser/case.clj
@@ -38,7 +38,7 @@
(&/T [(&/T ["" -1 -1]) (&/$Tuple &/$Nil)]))
(defn ^:private resolve-type [type]
- (if (&type/type= &type/Top type)
+ (if (&type/type= &type/Any type)
(return type)
(|case type
(&/$Var ?id)
@@ -301,7 +301,7 @@
(&/$Tuple ?members)
(|case ?members
(&/$Nil)
- (|do [_ (&type/check value-type &type/Top)
+ (|do [_ (&type/check value-type &type/Any)
=kont kont]
(return (&/T [($TupleTestAC (&/|list)) =kont])))
@@ -579,7 +579,7 @@
(|case ?structs
(&/$Nil)
(|do [value-type* (resolve-type value-type)]
- (if (&type/type= &type/Top value-type*)
+ (if (&type/type= &type/Any value-type*)
(return true)
(&/fail-with-loc "[Pattern-maching Error] Unit is not total.")))
diff --git a/luxc/src/lux/analyser/lux.clj b/luxc/src/lux/analyser/lux.clj
index 639d71cb6..781f9854b 100644
--- a/luxc/src/lux/analyser/lux.clj
+++ b/luxc/src/lux/analyser/lux.clj
@@ -45,7 +45,7 @@
;; [Exports]
(defn analyse-unit [analyse ?exo-type]
(|do [_cursor &/cursor
- _ (&type/check ?exo-type &type/Top)]
+ _ (&type/check ?exo-type &type/Any)]
(return (&/|list (&&/|meta ?exo-type _cursor
(&&/$tuple (&/|list)))))))
@@ -689,7 +689,7 @@
(return (&/|list (coerce ==type =value)))))
(let [program-type (&/$Function (&/$Apply &type/Text &type/List)
- (&/$Apply &type/Top &type/IO))]
+ (&/$Apply &type/Any &type/IO))]
(defn analyse-program [analyse optimize compile-program ?program]
(|do [_ &/ensure-statement
=program (&&/analyse-1 analyse program-type ?program)
diff --git a/luxc/src/lux/analyser/module.clj b/luxc/src/lux/analyser/module.clj
index fca407c4b..130004701 100644
--- a/luxc/src/lux/analyser/module.clj
+++ b/luxc/src/lux/analyser/module.clj
@@ -49,7 +49,7 @@
(do-template [<flagger> <asker> <tag>]
(do (defn <flagger>
- "(-> Text (Lux Top))"
+ "(-> Text (Lux Any))"
[module-name]
(fn [state]
(let [state* (&/update$ &/$modules
@@ -382,7 +382,7 @@
state)))))
(defn ensure-can-see-tag
- "(-> Text Text (Lux Top))"
+ "(-> Text Text (Lux Any))"
[module tag-name]
(|do [current-module &/get-module-name]
(fn [state]
diff --git a/luxc/src/lux/analyser/proc/common.clj b/luxc/src/lux/analyser/proc/common.clj
index 19d833cc2..ac5900634 100644
--- a/luxc/src/lux/analyser/proc/common.clj
+++ b/luxc/src/lux/analyser/proc/common.clj
@@ -122,7 +122,7 @@
(&/|list)))))))
(do-template [<name> <op>]
- (let [inputT (&/$Apply &type/Top &type/I64)
+ (let [inputT (&/$Apply &type/Any &type/I64)
outputT &type/I64]
(defn <name> [analyse exo-type ?values]
(|do [:let [(&/$Cons mask (&/$Cons input (&/$Nil))) ?values]
@@ -139,7 +139,7 @@
)
(do-template [<name> <op>]
- (let [inputT (&/$Apply &type/Top &type/I64)
+ (let [inputT (&/$Apply &type/Any &type/I64)
outputT &type/I64]
(defn <name> [analyse exo-type ?values]
(|do [:let [(&/$Cons shift (&/$Cons input (&/$Nil))) ?values]
@@ -167,9 +167,9 @@
(return (&/|list (&&/|meta exo-type _cursor
(&&/$proc (&/T <proc>) (&/|list subjectA paramA) (&/|list))))))))
- ^:private analyse-i64-eq ["i64" "="] (&/$Apply &type/Top &type/I64) &type/Bool
- ^:private analyse-i64-add ["i64" "+"] (&/$Apply &type/Top &type/I64) &type/I64
- ^:private analyse-i64-sub ["i64" "-"] (&/$Apply &type/Top &type/I64) &type/I64
+ ^:private analyse-i64-eq ["i64" "="] (&/$Apply &type/Any &type/I64) &type/Bool
+ ^:private analyse-i64-add ["i64" "+"] (&/$Apply &type/Any &type/I64) &type/I64
+ ^:private analyse-i64-sub ["i64" "-"] (&/$Apply &type/Any &type/I64) &type/I64
)
(do-template [<name> <proc> <input-type> <output-type>]
@@ -248,9 +248,9 @@
^:private analyse-int-frac &type/Int &type/Frac ["int" "frac"]
^:private analyse-frac-int &type/Frac &type/Int ["frac" "int"]
- ^:private analyse-io-log &type/Text &type/Top ["io" "log"]
- ^:private analyse-io-error &type/Text &type/Bottom ["io" "error"]
- ^:private analyse-io-exit &type/Int &type/Bottom ["io" "exit"]
+ ^:private analyse-io-log &type/Text &type/Any ["io" "log"]
+ ^:private analyse-io-error &type/Text &type/Nothing ["io" "error"]
+ ^:private analyse-io-exit &type/Int &type/Nothing ["io" "exit"]
)
(defn ^:private analyse-io-current-time [analyse exo-type ?values]
@@ -410,7 +410,7 @@
(|do [:let [(&/$Cons valueC (&/$Cons boxC (&/$Nil))) ?values]
boxA (&&/analyse-1 analyse (&type/Box threadT valueT) boxC)
valueA (&&/analyse-1 analyse valueT valueC)
- _ (&type/check exo-type &type/Top)
+ _ (&type/check exo-type &type/Any)
_cursor &/cursor]
(return (&/|list (&&/|meta exo-type _cursor
(&&/$proc (&/T ["box" "write"]) (&/|list valueA boxA) (&/|list)))))))))))
@@ -425,8 +425,8 @@
(defn ^:private analyse-process-schedule [analyse exo-type ?values]
(|do [:let [(&/$Cons ?milliseconds (&/$Cons ?procedure (&/$Nil))) ?values]
=milliseconds (&&/analyse-1 analyse &type/Nat ?milliseconds)
- =procedure (&&/analyse-1 analyse (&/$Apply &type/Top &type/IO) ?procedure)
- _ (&type/check exo-type &type/Top)
+ =procedure (&&/analyse-1 analyse (&/$Apply &type/Any &type/IO) ?procedure)
+ _ (&type/check exo-type &type/Any)
_cursor &/cursor]
(return (&/|list (&&/|meta exo-type _cursor
(&&/$proc (&/T ["process" "schedule"]) (&/|list =milliseconds =procedure) (&/|list)))))))
diff --git a/luxc/src/lux/analyser/proc/js.clj b/luxc/src/lux/analyser/proc/js.clj
deleted file mode 100644
index 8b218ee43..000000000
--- a/luxc/src/lux/analyser/proc/js.clj
+++ /dev/null
@@ -1,93 +0,0 @@
-(ns lux.analyser.proc.js
- (:require (clojure [template :refer [do-template]]
- [string :as string])
- clojure.core.match
- clojure.core.match.array
- (lux [base :as & :refer [|let |do return* return |case assert!]]
- [type :as &type])
- (lux.analyser [base :as &&])))
-
-(do-template [<name> <proc>]
- (defn <name> [analyse exo-type ?values]
- (|do [:let [(&/$Cons ?function ?args) ?values]
- =function (&&/analyse-1 analyse (&/$Primitive "function" &/$Nil) ?function)
- =args (&/map% (partial &&/analyse-1+ analyse) ?args)
- _ (&type/check exo-type (&/$Primitive "object" &/$Nil))
- _cursor &/cursor]
- (return (&/|list (&&/|meta exo-type _cursor
- (&&/$proc (&/T ["js" <proc>]) (&/$Cons =function =args) (&/|list)))))))
-
- ^:private analyse-js-new "new"
- ^:private analyse-js-call "call"
- )
-
-(defn ^:private analyse-js-object-call [analyse exo-type ?values]
- (|do [:let [(&/$Cons ?object (&/$Cons ?field ?args)) ?values]
- =object (&&/analyse-1 analyse (&/$Primitive "object" &/$Nil) ?object)
- =field (&&/analyse-1 analyse &type/Text ?field)
- =args (&/map% (partial &&/analyse-1+ analyse) ?args)
- _ (&type/check exo-type (&/$Primitive "object" &/$Nil))
- _cursor &/cursor]
- (return (&/|list (&&/|meta exo-type _cursor
- (&&/$proc (&/T ["js" "object-call"]) (&/$Cons =object (&/$Cons =field =args)) (&/|list)))))))
-
-(defn ^:private analyse-js-ref [analyse exo-type ?values]
- (|do [:let [(&/$Cons [_ (&/$Text ?ref-name)] (&/$Nil)) ?values]
- _ (&type/check exo-type (&/$Primitive "object" &/$Nil))
- _cursor &/cursor]
- (return (&/|list (&&/|meta exo-type _cursor
- (&&/$proc (&/T ["js" "ref"]) (&/|list) (&/|list ?ref-name)))))))
-
-(do-template [<name> <proc>]
- (defn <name> [analyse exo-type ?values]
- (|do [:let [(&/$Cons ?object (&/$Cons ?field (&/$Nil))) ?values]
- =object (&&/analyse-1 analyse (&/$Primitive "object" &/$Nil) ?object)
- =field (&&/analyse-1 analyse &type/Text ?field)
- _ (&type/check exo-type (&/$Primitive "object" &/$Nil))
- _cursor &/cursor]
- (return (&/|list (&&/|meta exo-type _cursor
- (&&/$proc (&/T ["js" <proc>]) (&/|list =object =field) (&/|list)))))))
-
- ^:private analyse-js-get-field "get-field"
- ^:private analyse-js-delete-field "delete-field"
- )
-
-(defn ^:private analyse-js-set-field [analyse exo-type ?values]
- (|do [:let [(&/$Cons ?object (&/$Cons ?field (&/$Cons ?value (&/$Nil)))) ?values]
- =object (&&/analyse-1 analyse (&/$Primitive "object" &/$Nil) ?object)
- =field (&&/analyse-1 analyse &type/Text ?field)
- =value (&&/analyse-1+ analyse ?value)
- _ (&type/check exo-type (&/$Primitive "object" &/$Nil))
- _cursor &/cursor]
- (return (&/|list (&&/|meta exo-type _cursor
- (&&/$proc (&/T ["js" "set-field"]) (&/|list =object =field =value) (&/|list)))))))
-
-(do-template [<name> <proc> <type>]
- (defn <name> [analyse exo-type ?values]
- (|do [:let [(&/$Nil) ?values]
- :let [output-type (&/$Primitive <type> &/$Nil)]
- _ (&type/check exo-type output-type)
- _cursor &/cursor]
- (return (&/|list (&&/|meta exo-type _cursor
- (&&/$proc (&/T ["js" <proc>]) (&/|list) (&/|list)))))))
-
- ^:private analyse-js-object "object" "object"
- ^:private analyse-js-null "null" "object"
- ^:private analyse-js-undefined "undefined" "undefined"
- )
-
-(defn analyse-host [analyse exo-type proc ?values]
- (case proc
- "new" (analyse-js-new analyse exo-type ?values)
- "call" (analyse-js-call analyse exo-type ?values)
- "object-call" (analyse-js-object-call analyse exo-type ?values)
- "ref" (analyse-js-ref analyse exo-type ?values)
- "object" (analyse-js-object analyse exo-type ?values)
- "get-field" (analyse-js-get-field analyse exo-type ?values)
- "set-field" (analyse-js-set-field analyse exo-type ?values)
- "delete-field" (analyse-js-delete-field analyse exo-type ?values)
- "null" (analyse-js-null analyse exo-type ?values)
- "undefined" (analyse-js-undefined analyse exo-type ?values)
- ;; else
- (&/fail-with-loc (str "[Analyser Error] Unknown host procedure: " ["js" proc])))
- )
diff --git a/luxc/src/lux/analyser/proc/jvm.clj b/luxc/src/lux/analyser/proc/jvm.clj
index 2eef1082c..8ad13c74b 100644
--- a/luxc/src/lux/analyser/proc/jvm.clj
+++ b/luxc/src/lux/analyser/proc/jvm.clj
@@ -194,7 +194,7 @@
"float" (return (&/$Primitive "java.lang.Float" &/$Nil))
"double" (return (&/$Primitive "java.lang.Double" &/$Nil))
"char" (return (&/$Primitive "java.lang.Character" &/$Nil))
- "void" (return &type/Top)
+ "void" (return &type/Any)
;; else
(|do [=params (&/map% (partial generic-class->type env) params)]
(return (&/$Primitive name =params))))
@@ -252,7 +252,7 @@
itype (generic-class->type full-env itype*)]
(if (double-register-gclass? itype*)
(&&env/with-local iname itype
- (&&env/with-local "" &type/Bottom
+ (&&env/with-local "" &type/Nothing
body*))
(&&env/with-local iname itype
body*)))))
@@ -265,7 +265,7 @@
(&/$ConstructorMethodSyntax =privacy-modifier ?strict ?anns ?gvars ?exceptions ?inputs ?ctor-args ?body)
(|do [method-env (make-type-env ?gvars)
:let [full-env (&/|++ class-env method-env)]
- :let [output-type &type/Top]
+ :let [output-type &type/Any]
=ctor-args (&/map% (fn [ctor-arg]
(|do [:let [[ca-type ca-term] ctor-arg]
=ca-type (generic-class->type full-env ca-type)
@@ -635,7 +635,7 @@
_ (&type/check (&/$Primitive "java.lang.Throwable" &/$Nil) (&&/expr-type* =ex))
[throw-class throw-params] (ensure-object (&&/expr-type* =ex))
_cursor &/cursor
- _ (&type/check exo-type &type/Bottom)]
+ _ (&type/check exo-type &type/Nothing)]
(return (&/|list (&&/|meta exo-type _cursor
(&&/$proc (&/T ["jvm" "throw"]) (&/|list =ex) (&/|list)))))))
@@ -673,7 +673,7 @@
:let [gclass (&host-type/gtype->gclass gtype)]
=type (&host-type/instance-param &type/existential &/$Nil gtype)
=value (&&/analyse-1 analyse =type value)
- :let [output-type &type/Top]
+ :let [output-type &type/Any]
_ (&type/check exo-type output-type)
_cursor &/cursor]
(return (&/|list (&&/|meta exo-type _cursor
@@ -690,7 +690,7 @@
:let [gclass (&host-type/gtype->gclass gtype)]
=type (analyse-field-access-helper obj-type gvars gtype)
=value (&&/analyse-1 analyse =type value)
- :let [output-type &type/Top]
+ :let [output-type &type/Any]
_ (&type/check exo-type output-type)
_cursor &/cursor]
(return (&/|list (&&/|meta exo-type _cursor
@@ -829,7 +829,7 @@
_ (compile-interface interface-decl supers =anns =methods)
:let [_ (println 'INTERFACE (str module "." (&/|first interface-decl)))]
_cursor &/cursor]
- (return (&/|list (&&/|meta &type/Top _cursor
+ (return (&/|list (&&/|meta &type/Any _cursor
(&&/$tuple (&/|list)))))))
(defn ^:private analyse-jvm-class [analyse compile-class class-decl super-class interfaces =inheritance-modifier =anns ?fields methods]
@@ -848,7 +848,7 @@
_ &/pop-dummy-name
:let [_ (println 'CLASS full-name)]
_cursor &/cursor]
- (return (&/|list (&&/|meta &type/Top _cursor
+ (return (&/|list (&&/|meta &type/Any _cursor
(&&/$tuple (&/|list))))))))
(defn ^:private captured-source [env-entry]
diff --git a/luxc/src/lux/analyser/record.clj b/luxc/src/lux/analyser/record.clj
index 595858873..3d3d8169f 100644
--- a/luxc/src/lux/analyser/record.clj
+++ b/luxc/src/lux/analyser/record.clj
@@ -11,7 +11,7 @@
"(-> (List (, Syntax Syntax)) (Lux (List Syntax)))"
(|do [[tag-group tag-type] (|case pairs
(&/$Nil)
- (return (&/T [&/$Nil &type/Top]))
+ (return (&/T [&/$Nil &type/Any]))
(&/$Cons [[_ (&/$Tag tag1)] _] _)
(|do [[module name] (&&/resolved-ident tag1)
diff --git a/luxc/src/lux/base.clj b/luxc/src/lux/base.clj
index 8867d0b1e..e1f48d23b 100644
--- a/luxc/src/lux/base.clj
+++ b/luxc/src/lux/base.clj
@@ -1070,7 +1070,7 @@
_
output))))))
-(def ^{:doc "(Meta Top)"}
+(def ^{:doc "(Meta Any)"}
ensure-statement
(fn [state]
(|case (get$ $expected state)
@@ -1325,7 +1325,7 @@
(return* state (|keys (get$ $modules state)))))
(defn when%
- "(-> Bool (Meta Top) (Meta Top))"
+ "(-> Bool (Meta Any) (Meta Any))"
[test body]
(if test
body
diff --git a/luxc/src/lux/compiler/jvm/proc/host.clj b/luxc/src/lux/compiler/jvm/proc/host.clj
index da2c5ccde..91c39effb 100644
--- a/luxc/src/lux/compiler/jvm/proc/host.clj
+++ b/luxc/src/lux/compiler/jvm/proc/host.clj
@@ -47,7 +47,7 @@
double-class "java.lang.Double"
char-class "java.lang.Character"]
(defn prepare-return! [^MethodVisitor *writer* *type*]
- (if (&type/type= &type/Top *type*)
+ (if (&type/type= &type/Any *type*)
(.visitLdcInsn *writer* &/unit-tag)
(|case *type*
(&/$Primitive "boolean" (&/$Nil))
diff --git a/luxc/src/lux/host.clj b/luxc/src/lux/host.clj
index 3f0181c99..5b93f5b49 100644
--- a/luxc/src/lux/host.clj
+++ b/luxc/src/lux/host.clj
@@ -75,7 +75,7 @@
(return ex-type-class)
_
- (if (&type/type= &type/Top type)
+ (if (&type/type= &type/Any type)
(return "V")
(assert false (str '->java-sig " " (&type/show-type type))))
)))
diff --git a/luxc/src/lux/type.clj b/luxc/src/lux/type.clj
index c2650c5b8..3a7b7cc9b 100644
--- a/luxc/src/lux/type.clj
+++ b/luxc/src/lux/type.clj
@@ -53,27 +53,27 @@
Box "#Box"
)
-(def Bottom
- (&/$Named (&/T ["lux" "Bottom"])
+(def Nothing
+ (&/$Named (&/T ["lux" "Nothing"])
(&/$UnivQ empty-env
(&/$Bound 1))))
-(def Top
- (&/$Named (&/T ["lux" "Top"])
+(def Any
+ (&/$Named (&/T ["lux" "Any"])
(&/$ExQ empty-env
(&/$Bound 1))))
(def IO
(&/$Named (&/T ["lux/codata" "IO"])
(&/$UnivQ empty-env
- (&/$Function Bottom (&/$Bound 1)))))
+ (&/$Function Nothing (&/$Bound 1)))))
(def List
(&/$Named (&/T ["lux" "List"])
(&/$UnivQ empty-env
(&/$Sum
;; lux;Nil
- Top
+ Any
;; lux;Cons
(&/$Product (&/$Bound 1)
(&/$Apply (&/$Bound 1)
@@ -84,7 +84,7 @@
(&/$UnivQ empty-env
(&/$Sum
;; lux;None
- Top
+ Any
;; lux;Some
(&/$Bound 1))
)))
@@ -94,7 +94,7 @@
(let [Type (&/$Apply (&/$Bound 1) (&/$Bound 0))
TypeList (&/$Apply Type List)
TypePair (&/$Product Type Type)]
- (&/$Apply Bottom
+ (&/$Apply Nothing
(&/$UnivQ empty-env
(&/$Sum
;; Primitive
@@ -424,8 +424,8 @@
(&/$Nil)
<unit>))
- Variant$ &/$Sum Bottom
- Tuple$ &/$Product Top
+ Variant$ &/$Sum Nothing
+ Tuple$ &/$Product Any
)
(defn show-type [^objects type]
@@ -930,8 +930,8 @@
(&/$Cons last prevs)
(&/fold (fn [r l] (<plus> l r)) last prevs)))
- fold-prod Top &/$Product
- fold-sum Bottom &/$Sum
+ fold-prod Any &/$Product
+ fold-sum Nothing &/$Sum
)
(def create-var+
diff --git a/luxc/src/lux/type/host.clj b/luxc/src/lux/type/host.clj
index d56e85fd7..bb7459c48 100644
--- a/luxc/src/lux/type/host.clj
+++ b/luxc/src/lux/type/host.clj
@@ -58,8 +58,8 @@
)]
output)))
-(def ^:private Top
- (&/$Named (&/T ["lux" "Top"])
+(def ^:private Any
+ (&/$Named (&/T ["lux" "Any"])
(&/$ExQ (&/|list)
(&/$Bound 1))))
@@ -139,7 +139,7 @@
(if-let [[_ _ arr-obrackets arr-obase simple-base arr-pbrackets arr-pbase] (re-find class-name-re gclass-name)]
(let [base (or arr-obase simple-base (jprim->lprim arr-pbase))]
(if (.equals "void" base)
- Top
+ Any
(reduce (fn [inner _] (&/$Primitive array-data-tag (&/|list inner)))
(&/$Primitive base (try (-> (Class/forName base) .getTypeParameters
seq count (repeat (&/$Primitive "java.lang.Object" &/$Nil))
@@ -184,7 +184,7 @@
(defn principal-class [refl-type]
(cond (instance? Class refl-type)
(let [class-type (class->type refl-type)]
- (if (type= Top class-type)
+ (if (type= Any class-type)
"V"
(|case class-type
(&/$Primitive "#Array" (&/$Cons (&/$Primitive class-name _) (&/$Nil)))
diff --git a/new-luxc/source/luxc/cache/io.lux b/new-luxc/source/luxc/cache/io.lux
index 998c658ac..2d1f373d5 100644
--- a/new-luxc/source/luxc/cache/io.lux
+++ b/new-luxc/source/luxc/cache/io.lux
@@ -65,7 +65,7 @@
(wrap (list.concat root-modules))))
(def: (delete file)
- (-> File (Process Top))
+ (-> File (Process Any))
(do io.Monad<Process>
[deleted? (file.delete file)]
(if deleted?
@@ -73,7 +73,7 @@
(io.throw Cannot-Delete-Cached-File file))))
(def: (un-install target-dir module-name)
- (-> File Text (Process Top))
+ (-> File Text (Process Any))
(do io.Monad<Process>
[#let [module-dir (///io.file target-dir module-name)]
files (file.files module-dir)
@@ -127,7 +127,7 @@
_ (un-install target-dir module-name)]
(wrap (list))))))
-(type: Loader (-> Ident Blob (Error Top)))
+(type: Loader (-> Ident Blob (Error Any)))
(def: (install target-dir load-def module-name module)
(-> File Loader Text Module (Process Module))
@@ -191,7 +191,7 @@
(:: @ map (dict.from-list text.Hash<Text>)))))
(def: (set-cache cache)
- (-> //.Cache (Process Top))
+ (-> //.Cache (Process Any))
(do io.Monad<IO>
[swapped? (atom.compare-and-swap //.empty cache ..cache)]
(if swapped?
@@ -199,13 +199,13 @@
(io.throw Cannot-Pre-Load-Cache-More-Than-Once ""))))
(def: #export (pre-load source-dirs target-dir load-def)
- (-> (List File) File Loader (Process Top))
+ (-> (List File) File Loader (Process Any))
(do io.Monad<Process>
[loaded-cache (pre-load' source-dirs (///io.platform-target target-dir) load-def)]
(set-cache loaded-cache)))
(def: #export (clean target-dir wanted-modules)
- (-> File (Set Text) (Process Top))
+ (-> File (Set Text) (Process Any))
(do io.Monad<Process>
[cached (cached target-dir)
_ (|> cached
diff --git a/new-luxc/source/luxc/io.jvm.lux b/new-luxc/source/luxc/io.jvm.lux
index 79450a502..16c2f4726 100644
--- a/new-luxc/source/luxc/io.jvm.lux
+++ b/new-luxc/source/luxc/io.jvm.lux
@@ -82,7 +82,7 @@
(file.make-directory (sanitize (platform-target target-dir)))))
(def: #export (prepare-module target-dir module-name)
- (-> File Text (Process Top))
+ (-> File Text (Process Any))
(do io.Monad<Process>
[#let [module-path (|> module-name
(format (platform-target target-dir) "/")
@@ -98,7 +98,7 @@
"Target: " target-dir "\n"))))))
(def: #export (write target name content)
- (-> File Text Blob (Process Top))
+ (-> File Text Blob (Process Any))
(|> name
(format (platform-target target) "/")
sanitize
diff --git a/new-luxc/source/luxc/lang/analysis/type.lux b/new-luxc/source/luxc/lang/analysis/type.lux
index c3296fd21..6d89dd5ef 100644
--- a/new-luxc/source/luxc/lang/analysis/type.lux
+++ b/new-luxc/source/luxc/lang/analysis/type.lux
@@ -23,5 +23,5 @@
(do macro.Monad<Meta>
[actualT (eval Type type)
_ (&.infer (:! Type actualT))]
- (&.with-type Top
+ (&.with-type Any
(analyse value))))
diff --git a/new-luxc/source/luxc/lang/extension.lux b/new-luxc/source/luxc/lang/extension.lux
index ef7a4f864..254dd18ca 100644
--- a/new-luxc/source/luxc/lang/extension.lux
+++ b/new-luxc/source/luxc/lang/extension.lux
@@ -27,7 +27,7 @@
(type: #export Analysis
(-> (-> Code (Meta Code))
- (-> Type Code (Meta Top))
+ (-> Type Code (Meta Any))
(List Code) (Meta Code)))
(type: #export Synthesis
@@ -39,7 +39,7 @@
(-> (List Code) (Meta Code)))
(type: #export Statement
- (-> (List Code) (Meta Top)))
+ (-> (List Code) (Meta Any)))
(type: #export Extensions
{#analysis (Dict Text Analysis)
@@ -61,9 +61,9 @@
(|> compiler (get@ #.extensions) (:! Extensions))])))
(def: (set extensions)
- (-> Extensions (Meta Top))
+ (-> Extensions (Meta Any))
(function (_ compiler)
- (#e.Success [(set@ #.extensions (:! Bottom extensions) compiler)
+ (#e.Success [(set@ #.extensions (:! Nothing extensions) compiler)
[]])))
(do-template [<name> <type> <category> <exception>]
@@ -99,7 +99,7 @@
(do-template [<name> <type> <category> <exception>]
[(def: #export (<name> name extension)
- (-> Text <type> (Meta Top))
+ (-> Text <type> (Meta Any))
(do macro.Monad<Meta>
[extensions ..get
_ (//.assert <exception> name
diff --git a/new-luxc/source/luxc/lang/extension/analysis/common.lux b/new-luxc/source/luxc/lang/extension/analysis/common.lux
index 9f2ac5aa8..f22cdcdd1 100644
--- a/new-luxc/source/luxc/lang/extension/analysis/common.lux
+++ b/new-luxc/source/luxc/lang/extension/analysis/common.lux
@@ -191,9 +191,9 @@
Bundle
(<| (prefix "io")
(|> (dict.new text.Hash<Text>)
- (install "log" (unary Text Top))
- (install "error" (unary Text Bottom))
- (install "exit" (unary Int Bottom))
+ (install "log" (unary Text Any))
+ (install "error" (unary Text Nothing))
+ (install "exit" (unary Int Nothing))
(install "current-time" (nullary Int)))))
(def: bit-procs
@@ -410,7 +410,7 @@
(do macro.Monad<Meta>
[[thread-id threadT] (&.with-type-env tc.var)
[var-id varT] (&.with-type-env tc.var)]
- ((binary varT (type (Box threadT varT)) Top proc)
+ ((binary varT (type (Box threadT varT)) Any proc)
analyse eval args))))
(def: box-procs
@@ -427,7 +427,7 @@
(<| (prefix "process")
(|> (dict.new text.Hash<Text>)
(install "parallelism-level" (nullary Nat))
- (install "schedule" (binary Nat (type (io.IO Top)) Top))
+ (install "schedule" (binary Nat (type (io.IO Any)) Any))
)))
(def: #export procedures
diff --git a/new-luxc/source/luxc/lang/extension/analysis/host.jvm.lux b/new-luxc/source/luxc/lang/extension/analysis/host.jvm.lux
index 08ad014be..9ef06a4b1 100644
--- a/new-luxc/source/luxc/lang/extension/analysis/host.jvm.lux
+++ b/new-luxc/source/luxc/lang/extension/analysis/host.jvm.lux
@@ -477,12 +477,12 @@
(case args
(^ (list exceptionC))
(do macro.Monad<Meta>
- [_ (&.infer Bottom)
+ [_ (&.infer Nothing)
[exceptionT exceptionA] (&common.with-unknown-type
(analyse exceptionC))
exception-class (check-object exceptionT)
? (sub-class? "java.lang.Throwable" exception-class)
- _ (: (Meta Top)
+ _ (: (Meta Any)
(if ?
(wrap [])
(&.throw Non-Throwable exception-class)))]
@@ -571,7 +571,7 @@
(java-type-to-lux-type mappings bound)
_
- (macro/wrap Top)))
+ (macro/wrap Any)))
(host.instance? Class java-type)
(let [java-type (:! (Class Object) java-type)
@@ -818,7 +818,7 @@
(case [classC fieldC]
[[_ (#.Text class)] [_ (#.Text field)]]
(do macro.Monad<Meta>
- [_ (&.infer Top)
+ [_ (&.infer Any)
[fieldT final?] (static-field class field)
_ (&.assert Cannot-Set-Final-Field (format class "#" field)
(not final?))
@@ -1130,7 +1130,7 @@
(def: (invoke//special proc)
(-> Text ///.Analysis)
(function (_ analyse eval args)
- (case (: (e.Error [(List Code) [Text Text Code (List [Text Code]) Top]])
+ (case (: (e.Error [(List Code) [Text Text Code (List [Text Code]) Any]])
(p.run args ($_ p.seq s.text s.text s.any (p.some (s.tuple (p.seq s.text s.any))) s.end!)))
(#e.Success [_ [class method objectC argsTC _]])
(do macro.Monad<Meta>
diff --git a/new-luxc/source/luxc/lang/extension/statement.lux b/new-luxc/source/luxc/lang/extension/statement.lux
index f607ac154..a92995630 100644
--- a/new-luxc/source/luxc/lang/extension/statement.lux
+++ b/new-luxc/source/luxc/lang/extension/statement.lux
@@ -52,7 +52,7 @@
(wrap [annsI (:! Code annsV)])))
(def: (ensure-valid-alias def-name annotations value)
- (-> Text Code Code (Meta Top))
+ (-> Text Code Code (Meta Any))
(case [annotations value]
(^multi [[_ (#.Record pairs)] [_ (#.Symbol _)]]
(|> pairs list.size (n/= +1)))
@@ -76,7 +76,7 @@
(do @
[_ (ensure-valid-alias def-name annotationsV valueC)
_ (lang.with-scope
- (statementT.translate-def def-name Bottom id annotationsV))]
+ (statementT.translate-def def-name Nothing id annotationsV))]
(wrap []))
#.None
@@ -107,7 +107,7 @@
(do macro.Monad<Meta>
[[_ programA] (<| lang.with-scope
(scopeL.with-local [args (type (List Text))])
- (lang.with-type (type (IO Top)))
+ (lang.with-type (type (IO Any)))
(expressionA.analyser evalL.eval programC))
syntheses //.all-syntheses
programI (expressionT.translate (expressionS.synthesize syntheses programA))
diff --git a/new-luxc/source/luxc/lang/host.jvm.lux b/new-luxc/source/luxc/lang/host.jvm.lux
index 5819e5126..01afaeccc 100644
--- a/new-luxc/source/luxc/lang/host.jvm.lux
+++ b/new-luxc/source/luxc/lang/host.jvm.lux
@@ -97,13 +97,13 @@
(.function (_ compiler)
(let [old (:! commonT.Host (get@ #.host compiler))]
(case (expr (set@ #.host
- (:! Bottom (set@ #commonT.anchor (#.Some anchor) old))
+ (:! Nothing (set@ #commonT.anchor (#.Some anchor) old))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! commonT.Host)
(set@ #commonT.anchor (get@ #commonT.anchor old))
- (:! Bottom))
+ (:! Nothing))
compiler')
output])
@@ -129,13 +129,13 @@
(.function (_ compiler)
(let [old (:! commonT.Host (get@ #.host compiler))]
(case (expr (set@ #.host
- (:! Bottom (set@ #commonT.context [(&.normalize-name name) +0] old))
+ (:! Nothing (set@ #commonT.context [(&.normalize-name name) +0] old))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! commonT.Host)
(set@ #commonT.context (get@ #commonT.context old))
- (:! Bottom))
+ (:! Nothing))
compiler')
output])
@@ -149,13 +149,13 @@
[old-name old-sub] (get@ #commonT.context old)
new-name (format old-name "$" (%i (nat-to-int old-sub)))]
(case (expr (set@ #.host
- (:! Bottom (set@ #commonT.context [new-name +0] old))
+ (:! Nothing (set@ #commonT.context [new-name +0] old))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! commonT.Host)
(set@ #commonT.context [old-name (n/inc old-sub)])
- (:! Bottom))
+ (:! Nothing))
compiler')
[new-name output]])
diff --git a/new-luxc/source/luxc/lang/host/common-lisp.lux b/new-luxc/source/luxc/lang/host/common-lisp.lux
index 7ae024a07..3ba69314d 100644
--- a/new-luxc/source/luxc/lang/host/common-lisp.lux
+++ b/new-luxc/source/luxc/lang/host/common-lisp.lux
@@ -8,8 +8,8 @@
(coll [list "list/" Functor<List> Fold<List>]))
(type abstract)))
-(abstract: #export Single {} Top)
-(abstract: #export Poly {} Top)
+(abstract: #export Single {} Any)
+(abstract: #export Poly {} Any)
(abstract: #export (Var kind)
{}
diff --git a/new-luxc/source/luxc/lang/host/jvm.lux b/new-luxc/source/luxc/lang/host/jvm.lux
index 3fb55d2f9..20dd4c37b 100644
--- a/new-luxc/source/luxc/lang/host/jvm.lux
+++ b/new-luxc/source/luxc/lang/host/jvm.lux
@@ -122,7 +122,7 @@
## Labels
(def: #export new-label
- (-> Top Label)
+ (-> Any Label)
org/objectweb/asm/Label::new)
(def: #export (simple-class name)
diff --git a/new-luxc/source/luxc/lang/host/php.lux b/new-luxc/source/luxc/lang/host/php.lux
index 982989320..603888d3e 100644
--- a/new-luxc/source/luxc/lang/host/php.lux
+++ b/new-luxc/source/luxc/lang/host/php.lux
@@ -7,11 +7,11 @@
(coll [list "list/" Functor<List> Fold<List>]))
(type abstract)))
-(abstract: Global' {} Top)
-(abstract: Var' {} Top)
-(abstract: Computation' {} Top)
-(abstract: (Expression' k) {} Top)
-(abstract: Statement' {} Top)
+(abstract: Global' {} Any)
+(abstract: Var' {} Any)
+(abstract: Computation' {} Any)
+(abstract: (Expression' k) {} Any)
+(abstract: Statement' {} Any)
(abstract: (Code' k)
{}
diff --git a/new-luxc/source/luxc/lang/host/python.lux b/new-luxc/source/luxc/lang/host/python.lux
index 128de5811..b2b639cb2 100644
--- a/new-luxc/source/luxc/lang/host/python.lux
+++ b/new-luxc/source/luxc/lang/host/python.lux
@@ -7,9 +7,9 @@
(coll [list "list/" Functor<List> Fold<List>]))
(type abstract)))
-(abstract: #export Single {} Top)
-(abstract: #export Poly {} Top)
-(abstract: #export Keyword {} Top)
+(abstract: #export Single {} Any)
+(abstract: #export Poly {} Any)
+(abstract: #export Keyword {} Any)
(abstract: #export (Var kind)
{}
diff --git a/new-luxc/source/luxc/lang/host/r.lux b/new-luxc/source/luxc/lang/host/r.lux
index 76e80d3d9..960063a11 100644
--- a/new-luxc/source/luxc/lang/host/r.lux
+++ b/new-luxc/source/luxc/lang/host/r.lux
@@ -8,8 +8,8 @@
(coll [list "list/" Functor<List> Fold<List>]))
(type abstract)))
-(abstract: #export Single {} Top)
-(abstract: #export Poly {} Top)
+(abstract: #export Single {} Any)
+(abstract: #export Poly {} Any)
(abstract: #export (Var kind)
{}
diff --git a/new-luxc/source/luxc/lang/host/scheme.lux b/new-luxc/source/luxc/lang/host/scheme.lux
index 218903ca0..7c8c67ab0 100644
--- a/new-luxc/source/luxc/lang/host/scheme.lux
+++ b/new-luxc/source/luxc/lang/host/scheme.lux
@@ -8,8 +8,8 @@
(coll [list "list/" Functor<List> Fold<List>]))
(type abstract)))
-(abstract: #export Single {} Top)
-(abstract: #export Poly {} Top)
+(abstract: #export Single {} Any)
+(abstract: #export Poly {} Any)
(abstract: #export (Var kind)
{}
diff --git a/new-luxc/source/luxc/lang/init.lux b/new-luxc/source/luxc/lang/init.lux
deleted file mode 100644
index da8fc9c07..000000000
--- a/new-luxc/source/luxc/lang/init.lux
+++ /dev/null
@@ -1,53 +0,0 @@
-(.module:
- lux
- [//]
- (// [".L" extension]
- (extension [".E" analysis]
- [".E" synthesis]
- [".E" translation]
- [".E" statement])
- (translation (jvm [".T" common]))))
-
-(def: #export (cursor file)
- (-> Text Cursor)
- [file +1 +0])
-
-(def: #export (source file code)
- (-> Text Text Source)
- [(cursor file) +0 code])
-
-(def: dummy-source
- Source
- [.dummy-cursor +0 ""])
-
-(def: #export type-context
- Type-Context
- {#.ex-counter +0
- #.var-counter +0
- #.var-bindings (list)})
-
-(def: #export info
- Info
- {#.target (for {"JVM" "JVM"
- "JS" "JS"})
- #.version //.version
- #.mode #.Build})
-
-(def: #export (compiler host)
- (-> Top Lux)
- {#.info ..info
- #.source dummy-source
- #.cursor .dummy-cursor
- #.current-module #.None
- #.modules (list)
- #.scopes (list)
- #.type-context ..type-context
- #.expected #.None
- #.seed +0
- #.scope-type-vars (list)
- #.extensions (:! Bottom
- {#extensionL.analysis analysisE.defaults
- #extensionL.synthesis synthesisE.defaults
- #extensionL.translation translationE.defaults
- #extensionL.statement statementE.defaults})
- #.host (:! Bottom host)})
diff --git a/new-luxc/source/luxc/lang/translation.lux b/new-luxc/source/luxc/lang/translation.lux
index 0899eccf2..0ed495c31 100644
--- a/new-luxc/source/luxc/lang/translation.lux
+++ b/new-luxc/source/luxc/lang/translation.lux
@@ -130,7 +130,7 @@
(&.throw Unrecognized-Statement (%code code))))
(def: (forgive-eof action)
- (-> (Meta Top) (Meta Top))
+ (-> (Meta Any) (Meta Any))
(function (_ compiler)
(case (action compiler)
(#e.Error error)
@@ -172,7 +172,7 @@
e.assume)))})
## (def: (write-module target-dir file-name module-name module artifacts)
-## (-> File Text Text Module Artifacts (Process Top))
+## (-> File Text Text Module Artifacts (Process Any))
## (do io.Monad<Process>
## [_ (monad.map @ (product.uncurry (&io.write target-dir))
## (dict.entries artifacts))]
@@ -269,7 +269,7 @@
(translate-module sources target prelude compiler)))
(def: #export (translate-program sources target program)
- (-> (List File) File Text (Process Top))
+ (-> (List File) File Text (Process Any))
(do io.Monad<Process>
[compiler (initialize sources target)
_ (translate-module sources target program compiler)
diff --git a/new-luxc/source/luxc/lang/translation/common-lisp.lux b/new-luxc/source/luxc/lang/translation/common-lisp.lux
index 704dfe91e..1ae046d33 100644
--- a/new-luxc/source/luxc/lang/translation/common-lisp.lux
+++ b/new-luxc/source/luxc/lang/translation/common-lisp.lux
@@ -52,7 +52,7 @@
(type: #export Host
{#context [Text Nat]
#anchor (Maybe Anchor)
- #loader (-> Expression (Error Top))
+ #loader (-> Expression (Error Any))
#interpreter (-> Expression (Error LispObject))
#module-buffer (Maybe StringBuilder)
#program-buffer StringBuilder})
@@ -80,12 +80,12 @@
(def: #export r-module-name Text (format "module" file-extension))
(def: #export init-module-buffer
- (Meta Top)
+ (Meta Any)
(function (_ compiler)
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #module-buffer (#.Some (StringBuilder::new [])))
- (:! Bottom))
+ (:! Nothing))
compiler)
[]])))
@@ -96,13 +96,13 @@
[old-name old-sub] (get@ #context old)
new-name (format old-name "f___" (%i (nat-to-int old-sub)))]
(case (expr (set@ #.host
- (:! Bottom (set@ #context [new-name +0] old))
+ (:! Nothing (set@ #context [new-name +0] old))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #context [old-name (n/inc old-sub)])
- (:! Bottom))
+ (:! Nothing))
compiler')
[new-name output]])
@@ -124,13 +124,13 @@
(function (_ compiler)
(let [old (:! Host (get@ #.host compiler))]
(case (expr (set@ #.host
- (:! Bottom (set@ #anchor (#.Some anchor) old))
+ (:! Nothing (set@ #anchor (#.Some anchor) old))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #anchor (get@ #anchor old))
- (:! Bottom))
+ (:! Nothing))
compiler')
output])
@@ -174,7 +174,7 @@
(#e.Success output)
(#e.Success [compiler output])))))]
- [load! #loader Top]
+ [load! #loader Any]
[interpret #interpreter LispObject]
)
@@ -187,7 +187,7 @@
(lang.normalize-name (format module "$" name)))
(def: #export (save code)
- (-> Expression (Meta Top))
+ (-> Expression (Meta Any))
(do macro.Monad<Meta>
[module-buffer module-buffer
#let [_ (Appendable::append [(:! CharSequence (_.expression code))]
@@ -197,7 +197,7 @@
(def: #export run interpret)
(def: #export (save-module! target)
- (-> File (Meta (Process Top)))
+ (-> File (Meta (Process Any)))
(do macro.Monad<Meta>
[module macro.current-module-name
module-buffer module-buffer
diff --git a/new-luxc/source/luxc/lang/translation/common-lisp/eval.jvm.lux b/new-luxc/source/luxc/lang/translation/common-lisp/eval.jvm.lux
index ee2aac932..eef9a985f 100644
--- a/new-luxc/source/luxc/lang/translation/common-lisp/eval.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/common-lisp/eval.jvm.lux
@@ -24,7 +24,7 @@
(#static forName [String] #try (Class Object)))
(def: _0
- Top
+ Any
(case (Class::forName "org.armedbear.lisp.Symbol")
(#e.Success _)
(log! "LOADED")
@@ -71,23 +71,23 @@
(elt [int] LispObject))
(def: (parse-tuple lux-object host-object)
- (-> (-> Object (Error Top)) SimpleVector (Error Top))
+ (-> (-> Object (Error Any)) SimpleVector (Error Any))
(let [size (:! Nat (SimpleVector::length [] host-object))]
(loop [idx +0
- output (:! (Array Top) (array.new size))]
+ output (:! (Array Any) (array.new size))]
(if (n/< size idx)
(case (lux-object (SimpleVector::elt [(:! Int idx)] host-object))
(#e.Error error)
(#e.Error error)
(#e.Success lux-value)
- (recur (n/inc idx) (array.write idx (:! Top lux-value) output)))
+ (recur (n/inc idx) (array.write idx (:! Any lux-value) output)))
(#e.Success output)))))
(def: (variant tag flag value)
- (-> Nat Bool Top Top)
+ (-> Nat Bool Any Any)
[(Long::intValue [] (:! Long tag))
- (: Top
+ (: Any
(if flag
//.unit
(host.null)))
@@ -98,7 +98,7 @@
(cdr LispObject))
(def: (parse-variant lux-object host-object)
- (-> (-> Object (Error Top)) Cons (Error Top))
+ (-> (-> Object (Error Any)) Cons (Error Any))
(let [variant-tag (Cons::car host-object)]
(if (and (host.instance? org/armedbear/lisp/Symbol variant-tag)
(text/= //.variant-tag (Symbol::getName [] (:! Symbol variant-tag))))
@@ -113,7 +113,7 @@
(ex.throw invalid-variant (:! Text (Object::toString [] (:! Object host-object)))))))
(def: (lux-object host-object)
- (-> Object (Error Top))
+ (-> Object (Error Any))
(cond (host.instance? org/armedbear/lisp/Bignum host-object)
(#e.Success (Bignum::longValue [] (:! Bignum host-object)))
@@ -144,7 +144,7 @@
(ex.throw Unknown-Kind-Of-Host-Object (:! Object host-object))))
(def: #export (eval code)
- (-> Expression (Meta Top))
+ (-> Expression (Meta Any))
(function (_ compiler)
(let [interpreter (|> compiler (get@ #.host) (:! //.Host) (get@ #//.interpreter))]
(case (interpreter code)
diff --git a/new-luxc/source/luxc/lang/translation/common-lisp/runtime.jvm.lux b/new-luxc/source/luxc/lang/translation/common-lisp/runtime.jvm.lux
index 96393c970..1819a8601 100644
--- a/new-luxc/source/luxc/lang/translation/common-lisp/runtime.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/common-lisp/runtime.jvm.lux
@@ -365,7 +365,7 @@
(def: #export artifact Text (format prefix //.file-extension))
(def: #export translate
- (Meta (Process Top))
+ (Meta (Process Any))
(do macro.Monad<Meta>
[_ //.init-module-buffer
_ (//.save runtime)]
diff --git a/new-luxc/source/luxc/lang/translation/common-lisp/statement.jvm.lux b/new-luxc/source/luxc/lang/translation/common-lisp/statement.jvm.lux
index e73d88c96..dab065e62 100644
--- a/new-luxc/source/luxc/lang/translation/common-lisp/statement.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/common-lisp/statement.jvm.lux
@@ -11,7 +11,7 @@
[".T" eval]))
(def: #export (translate-def name expressionT expressionO metaV)
- (-> Text Type Expression Code (Meta Top))
+ (-> Text Type Expression Code (Meta Any))
(do macro.Monad<Meta>
[current-module macro.current-module-name
#let [def-ident [current-module name]]]
diff --git a/new-luxc/source/luxc/lang/translation/js.lux b/new-luxc/source/luxc/lang/translation/js.lux
index 3e9b1b143..edca93d10 100644
--- a/new-luxc/source/luxc/lang/translation/js.lux
+++ b/new-luxc/source/luxc/lang/translation/js.lux
@@ -90,12 +90,12 @@
(def: #export module-js-name Text "module.js")
(def: #export init-module-buffer
- (Meta Top)
+ (Meta Any)
(function (_ compiler)
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #module-buffer (#.Some (StringBuilder::new [])))
- (:! Bottom))
+ (:! Nothing))
compiler)
[]])))
@@ -106,13 +106,13 @@
[old-name old-sub] (get@ #context old)
new-name (format old-name "$" (%i (nat-to-int old-sub)))]
(case (expr (set@ #.host
- (:! Bottom (set@ #context [new-name +0] old))
+ (:! Nothing (set@ #context [new-name +0] old))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #context [old-name (n/inc old-sub)])
- (:! Bottom))
+ (:! Nothing))
compiler')
[new-name output]])
@@ -134,13 +134,13 @@
(function (_ compiler)
(let [old (:! Host (get@ #.host compiler))]
(case (expr (set@ #.host
- (:! Bottom (set@ #anchor (#.Some anchor) old))
+ (:! Nothing (set@ #anchor (#.Some anchor) old))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #anchor (get@ #anchor old))
- (:! Bottom))
+ (:! Nothing))
compiler')
output])
@@ -173,7 +173,7 @@
(#e.Success [compiler (|> compiler (get@ #.host) (:! Host) (get@ #program-buffer))])))
(def: (execute code)
- (-> Expression (Meta Top))
+ (-> Expression (Meta Any))
(function (_ compiler)
(case (|> compiler
(get@ #.host)
@@ -187,7 +187,7 @@
(#e.Success [compiler []]))))
(def: (::toString js-object)
- (-> Top JSObject)
+ (-> Any JSObject)
(object [] AbstractJSObject []
[]
(AbstractJSObject (isFunction) boolean
@@ -317,7 +317,7 @@
(format (module-name module) "$" (lang.normalize-name name)))
(def: #export (save-js code)
- (-> JS (Meta Top))
+ (-> JS (Meta Any))
(do macro.Monad<Meta>
[module-buffer module-buffer
#let [_ (Appendable::append [(:! CharSequence code)]
@@ -325,11 +325,11 @@
(execute code)))
(def: #export (save-definition name code)
- (-> Ident Expression (Meta Top))
+ (-> Ident Expression (Meta Any))
(save-js (format "var " (definition-name name) " = " code ";\n")))
(def: #export (save-module! target)
- (-> File (Meta (Process Top)))
+ (-> File (Meta (Process Any)))
(do macro.Monad<Meta>
[module macro.current-module-name
module-buffer module-buffer
diff --git a/new-luxc/source/luxc/lang/translation/js/eval.jvm.lux b/new-luxc/source/luxc/lang/translation/js/eval.jvm.lux
index 5b2499eb0..04121b944 100644
--- a/new-luxc/source/luxc/lang/translation/js/eval.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/js/eval.jvm.lux
@@ -73,7 +73,7 @@
#.None))
(def: (variant lux-object js-object)
- (-> (-> Object (Error Top)) ScriptObjectMirror (Maybe Top))
+ (-> (-> Object (Error Any)) ScriptObjectMirror (Maybe Any))
(case [(JSObject::getMember [//.variant-tag-field] js-object)
(JSObject::getMember [//.variant-flag-field] js-object)
(JSObject::getMember [//.variant-value-field] js-object)]
@@ -88,7 +88,7 @@
#.None))
(def: (array lux-object js-object)
- (-> (-> Object (Error Top)) ScriptObjectMirror (Maybe (Array Object)))
+ (-> (-> Object (Error Any)) ScriptObjectMirror (Maybe (Array Object)))
(if (JSObject::isArray [] js-object)
(let [init-num-keys (int-to-nat (ScriptObjectMirror::size [] js-object))]
(loop [num-keys init-num-keys
@@ -112,7 +112,7 @@
#.None))
(def: (lux-object js-object)
- (-> Object (Error Top))
+ (-> Object (Error Any))
(`` (cond (host.null? js-object)
(ex.throw Null-Has-No-Lux-Representation "")
@@ -160,7 +160,7 @@
(ex.throw Unknown-Kind-Of-JS-Object (Object::toString [] (:! Object js-object))))))
(def: #export (eval code)
- (-> Expression (Meta Top))
+ (-> Expression (Meta Any))
(function (_ compiler)
(case (|> compiler
(get@ #.host)
diff --git a/new-luxc/source/luxc/lang/translation/js/runtime.jvm.lux b/new-luxc/source/luxc/lang/translation/js/runtime.jvm.lux
index 1839a1a5e..2c7303c31 100644
--- a/new-luxc/source/luxc/lang/translation/js/runtime.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/js/runtime.jvm.lux
@@ -727,7 +727,7 @@
(def: #export artifact Text (format prefix ".js"))
(def: #export translate
- (Meta (Process Top))
+ (Meta (Process Any))
(do macro.Monad<Meta>
[_ //.init-module-buffer
_ (//.save-js runtime)]
diff --git a/new-luxc/source/luxc/lang/translation/js/statement.jvm.lux b/new-luxc/source/luxc/lang/translation/js/statement.jvm.lux
index e15e4379a..849ae76c2 100644
--- a/new-luxc/source/luxc/lang/translation/js/statement.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/js/statement.jvm.lux
@@ -11,7 +11,7 @@
[".T" eval]))
(def: #export (translate-def name expressionT expressionJS metaV)
- (-> Text Type Expression Code (Meta Top))
+ (-> Text Type Expression Code (Meta Any))
(do macro.Monad<Meta>
[current-module macro.current-module-name
#let [def-ident [current-module name]]]
diff --git a/new-luxc/source/luxc/lang/translation/jvm/common.jvm.lux b/new-luxc/source/luxc/lang/translation/jvm/common.jvm.lux
index 29db94d07..1d8da2893 100644
--- a/new-luxc/source/luxc/lang/translation/jvm/common.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/jvm/common.jvm.lux
@@ -66,13 +66,13 @@
(case (action (update@ #.host
(|>> (:! Host)
(set@ #artifacts (dict.new text.Hash<Text>))
- (:! Bottom))
+ (:! Nothing))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #artifacts (|> (get@ #.host compiler) (:! Host) (get@ #artifacts)))
- (:! Bottom))
+ (:! Nothing))
compiler')
[(|> compiler' (get@ #.host) (:! Host) (get@ #artifacts))
output]])
@@ -81,19 +81,19 @@
(#e.Error error))))
(def: #export (record-artifact name content)
- (-> Text Blob (Meta Top))
+ (-> Text Blob (Meta Any))
(function (_ compiler)
(if (|> compiler (get@ #.host) (:! Host) (get@ #artifacts) (dict.contains? name))
(ex.throw Cannot-Overwrite-Artifact name)
(#e.Success [(update@ #.host
(|>> (:! Host)
(update@ #artifacts (dict.put name content))
- (:! Bottom))
+ (:! Nothing))
compiler)
[]]))))
(def: #export (store-class name byte-code)
- (-> Text Bytecode (Meta Top))
+ (-> Text Bytecode (Meta Any))
(function (_ compiler)
(let [store (|> (get@ #.host compiler)
(:! Host)
@@ -116,7 +116,7 @@
(def: #export $Object $.Type ($t.class "java.lang.Object" (list)))
(def: #export (load-definition compiler)
- (-> Lux (-> Ident Blob (Error Top)))
+ (-> Lux (-> Ident Blob (Error Any)))
(function (_ (^@ def-ident [def-module def-name]) def-bytecode)
(let [normal-name (format (lang.normalize-name def-name) (%n (text/hash def-name)))
class-name (format (text.replace-all "/" "." def-module) "." normal-name)]
diff --git a/new-luxc/source/luxc/lang/translation/jvm/eval.jvm.lux b/new-luxc/source/luxc/lang/translation/jvm/eval.jvm.lux
index c326895a2..d8e8ffd5e 100644
--- a/new-luxc/source/luxc/lang/translation/jvm/eval.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/jvm/eval.jvm.lux
@@ -21,7 +21,7 @@
(getField [String] Field))
(def: #export (eval valueI)
- (-> $.Inst (Meta Top))
+ (-> $.Inst (Meta Any))
(do macro.Monad<Meta>
[current-module macro.current-module-name
class-name (:: @ map %code (macro.gensym (format current-module "/eval")))
diff --git a/new-luxc/source/luxc/lang/translation/jvm/statement.jvm.lux b/new-luxc/source/luxc/lang/translation/jvm/statement.jvm.lux
index 4400c1e90..4c52231f3 100644
--- a/new-luxc/source/luxc/lang/translation/jvm/statement.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/jvm/statement.jvm.lux
@@ -37,7 +37,7 @@
(getField [String] #try Field))
(def: #export (translate-def def-name valueT valueI metaV)
- (-> Text Type $.Inst Code (Meta Top))
+ (-> Text Type $.Inst Code (Meta Any))
(do macro.Monad<Meta>
[current-module macro.current-module-name
#let [def-ident [current-module def-name]]]
@@ -65,7 +65,7 @@
$i.RETURN))))]
_ (commonT.store-class class-name bytecode)
class (commonT.load-class class-name)
- valueV (: (Meta Top)
+ valueV (: (Meta Any)
(case (do e.Monad<Error>
[field (Class::getField [commonT.value-field] class)]
(Field::get [#.None] field))
@@ -93,7 +93,7 @@
(commonT.record-artifact (format bytecode-name ".class") bytecode)))))
(def: #export (translate-program programI)
- (-> $.Inst (Meta Top))
+ (-> $.Inst (Meta Any))
(let [nilI runtimeT.noneI
num-inputsI (|>> ($i.ALOAD +0) $i.ARRAYLENGTH)
decI (|>> ($i.int 1) $i.ISUB)
diff --git a/new-luxc/source/luxc/lang/translation/lua.lux b/new-luxc/source/luxc/lang/translation/lua.lux
index 5d25fb864..94a703300 100644
--- a/new-luxc/source/luxc/lang/translation/lua.lux
+++ b/new-luxc/source/luxc/lang/translation/lua.lux
@@ -78,7 +78,7 @@
(type: #export Host
{#context [Text Nat]
#anchor (Maybe Anchor)
- #interpreter (-> Text (Error Top))
+ #interpreter (-> Text (Error Any))
#module-buffer (Maybe StringBuilder)
#program-buffer StringBuilder})
@@ -104,12 +104,12 @@
(def: #export lua-module-name Text "module.lua")
(def: #export init-module-buffer
- (Meta Top)
+ (Meta Any)
(function (_ compiler)
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #module-buffer (#.Some (StringBuilder::new [])))
- (:! Bottom))
+ (:! Nothing))
compiler)
[]])))
@@ -120,13 +120,13 @@
[old-name old-sub] (get@ #context old)
new-name (format old-name "___" (%i (nat-to-int old-sub)))]
(case (expr (set@ #.host
- (:! Bottom (set@ #context [new-name +0] old))
+ (:! Nothing (set@ #context [new-name +0] old))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #context [old-name (n/inc old-sub)])
- (:! Bottom))
+ (:! Nothing))
compiler')
[new-name output]])
@@ -148,13 +148,13 @@
(function (_ compiler)
(let [old (:! Host (get@ #.host compiler))]
(case (expr (set@ #.host
- (:! Bottom (set@ #anchor (#.Some anchor) old))
+ (:! Nothing (set@ #anchor (#.Some anchor) old))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #anchor (get@ #anchor old))
- (:! Bottom))
+ (:! Nothing))
compiler')
output])
@@ -187,7 +187,7 @@
(#e.Success [compiler (|> compiler (get@ #.host) (:! Host) (get@ #program-buffer))])))
(def: (execute code)
- (-> Expression (Meta Top))
+ (-> Expression (Meta Any))
(function (_ compiler)
(let [interpreter (|> compiler (get@ #.host) (:! Host) (get@ #interpreter))]
(case (interpreter code)
@@ -208,7 +208,7 @@
(lang.normalize-name (format module "$" name)))
(def: #export (save code)
- (-> Lua (Meta Top))
+ (-> Lua (Meta Any))
(do macro.Monad<Meta>
[module-buffer module-buffer
#let [_ (Appendable::append [(:! CharSequence code)]
@@ -216,7 +216,7 @@
(execute code)))
(def: #export (save-module! target)
- (-> File (Meta (Process Top)))
+ (-> File (Meta (Process Any)))
(do macro.Monad<Meta>
[module macro.current-module-name
module-buffer module-buffer
diff --git a/new-luxc/source/luxc/lang/translation/lua/eval.jvm.lux b/new-luxc/source/luxc/lang/translation/lua/eval.jvm.lux
index cc267e7d5..68b41e6d7 100644
--- a/new-luxc/source/luxc/lang/translation/lua/eval.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/lua/eval.jvm.lux
@@ -38,7 +38,7 @@
(host.import net/sandius/rembulan/impl/DefaultTable)
(def: (variant lux-object host-object)
- (-> (-> Object (Error Top)) DefaultTable (Maybe Top))
+ (-> (-> Object (Error Any)) DefaultTable (Maybe Any))
(case [(Table::get-key [//.variant-tag-field] host-object)
(Table::get-key [//.variant-flag-field] host-object)
(Table::get-key [//.variant-value-field] host-object)]
@@ -46,14 +46,14 @@
[(lux-object value)
(#.Some value)])
(#.Some [(Long::intValue [] (:! Long tag))
- (: Top (case ?flag (#.Some _) "" #.None (host.null)))
+ (: Any (case ?flag (#.Some _) "" #.None (host.null)))
value])
_
#.None))
(def: (array lux-object host-object)
- (-> (-> Object (Error Top)) DefaultTable (Maybe (Array Object)))
+ (-> (-> Object (Error Any)) DefaultTable (Maybe (Array Object)))
(let [init-num-keys (:! Nat (Table::rawlen [] host-object))]
(loop [num-keys init-num-keys
idx +0
@@ -74,7 +74,7 @@
(#.Some output)))))
(def: (lux-object host-object)
- (-> Object (Error Top))
+ (-> Object (Error Any))
(cond (host.null? host-object)
(ex.throw Null-Has-No-Lux-Representation "")
@@ -106,7 +106,7 @@
))
(def: #export (eval code)
- (-> Expression (Meta Top))
+ (-> Expression (Meta Any))
(function (_ compiler)
(let [interpreter (|> compiler (get@ #.host) (:! //.Host) (get@ #//.interpreter))]
(case (interpreter (format "return " code ";"))
diff --git a/new-luxc/source/luxc/lang/translation/lua/runtime.jvm.lux b/new-luxc/source/luxc/lang/translation/lua/runtime.jvm.lux
index 70b498dfa..ace528429 100644
--- a/new-luxc/source/luxc/lang/translation/lua/runtime.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/lua/runtime.jvm.lux
@@ -386,7 +386,7 @@
(def: #export artifact Text (format prefix ".lua"))
(def: #export translate
- (Meta (Process Top))
+ (Meta (Process Any))
(do macro.Monad<Meta>
[_ //.init-module-buffer
_ (//.save runtime)]
diff --git a/new-luxc/source/luxc/lang/translation/lua/statement.jvm.lux b/new-luxc/source/luxc/lang/translation/lua/statement.jvm.lux
index ee0725014..3a438ae65 100644
--- a/new-luxc/source/luxc/lang/translation/lua/statement.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/lua/statement.jvm.lux
@@ -11,7 +11,7 @@
[".T" eval]))
(def: #export (translate-def name expressionT expressionO metaV)
- (-> Text Type Expression Code (Meta Top))
+ (-> Text Type Expression Code (Meta Any))
(do macro.Monad<Meta>
[current-module macro.current-module-name
#let [def-ident [current-module name]]]
diff --git a/new-luxc/source/luxc/lang/translation/php.lux b/new-luxc/source/luxc/lang/translation/php.lux
index 8cbcaad3a..50bfd5289 100644
--- a/new-luxc/source/luxc/lang/translation/php.lux
+++ b/new-luxc/source/luxc/lang/translation/php.lux
@@ -54,7 +54,7 @@
(type: #export Host
{#context [Text Nat]
#anchor (Maybe Anchor)
- #loader (-> Statement (Error Top))
+ #loader (-> Statement (Error Any))
#interpreter (-> Expression (Error Object))
#module-buffer (Maybe StringBuilder)
#program-buffer StringBuilder})
@@ -77,12 +77,12 @@
(def: #export module-name Text (format "module" extension))
(def: #export init-module-buffer
- (Meta Top)
+ (Meta Any)
(function (_ compiler)
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #module-buffer (#.Some (StringBuilder::new [])))
- (:! Bottom))
+ (:! Nothing))
compiler)
[]])))
@@ -93,13 +93,13 @@
[old-name old-sub] (get@ #context old)
new-name (format old-name "___" (%i (nat-to-int old-sub)))]
(case (expr (set@ #.host
- (:! Bottom (set@ #context [new-name +0] old))
+ (:! Nothing (set@ #context [new-name +0] old))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #context [old-name (n/inc old-sub)])
- (:! Bottom))
+ (:! Nothing))
compiler')
[new-name output]])
@@ -121,13 +121,13 @@
(function (_ compiler)
(let [old (:! Host (get@ #.host compiler))]
(case (expr (set@ #.host
- (:! Bottom (set@ #anchor (#.Some anchor) old))
+ (:! Nothing (set@ #anchor (#.Some anchor) old))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #anchor (get@ #anchor old))
- (:! Bottom))
+ (:! Nothing))
compiler')
output])
@@ -171,7 +171,7 @@
(#e.Success output)
(#e.Success [compiler output])))))]
- [load! #loader Statement Top]
+ [load! #loader Statement Any]
[interpret #interpreter Expression Object]
)
@@ -186,7 +186,7 @@
(lang.normalize-name (format module "$" name)))
(def: #export (save code)
- (-> Statement (Meta Top))
+ (-> Statement (Meta Any))
(do macro.Monad<Meta>
[module-buffer module-buffer
#let [_ (Appendable::append [(:! CharSequence (_.code code))]
@@ -194,7 +194,7 @@
(load! code)))
(def: #export (save-module! target)
- (-> File (Meta (Process Top)))
+ (-> File (Meta (Process Any)))
(do macro.Monad<Meta>
[module macro.current-module-name
module-buffer module-buffer
diff --git a/new-luxc/source/luxc/lang/translation/php/eval.jvm.lux b/new-luxc/source/luxc/lang/translation/php/eval.jvm.lux
index c6ff1a880..48c09c6c0 100644
--- a/new-luxc/source/luxc/lang/translation/php/eval.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/php/eval.jvm.lux
@@ -60,10 +60,10 @@
(get [Memory] Memory))
(def: (tuple lux-object host-object)
- (-> (-> Object (Error Top)) ArrayMemory (Error Top))
+ (-> (-> Object (Error Any)) ArrayMemory (Error Any))
(let [size (ArrayMemory::size [] host-object)]
(loop [idx 0
- output (: (Array Top) (array.new (:! Nat size)))]
+ output (: (Array Any) (array.new (:! Nat size)))]
(if (i/< size idx)
(let [value (|> host-object
(ArrayMemory::get [(LongMemory::new [idx])])
@@ -78,13 +78,13 @@
(ex.return output)))))
(def: (variant lux-object host-object)
- (-> (-> Object (Error Top)) ArrayMemory (Error Top))
+ (-> (-> Object (Error Any)) ArrayMemory (Error Any))
(do e.Monad<Error>
[variant-tag (lux-object (ArrayMemory::get [(StringMemory::new [//.variant-tag-field])] host-object))
variant-value (lux-object (ArrayMemory::get [(StringMemory::new [//.variant-value-field])] host-object))]
- (wrap (: Top
+ (wrap (: Any
[(Long::intValue [] (:! Long variant-tag))
- (: Top
+ (: Any
(if (|> host-object
(ArrayMemory::get [(StringMemory::new [//.variant-flag-field])])
(:! ReferenceMemory)
@@ -95,7 +95,7 @@
variant-value]))))
(def: (lux-object host-object)
- (-> Object (Error Top))
+ (-> Object (Error Any))
(cond (host.instance? php/runtime/memory/FalseMemory host-object)
(ex.return false)
@@ -123,7 +123,7 @@
(ex.throw Unknown-Kind-Of-Host-Object host-object)))
(def: #export (eval code)
- (-> Expression (Meta Top))
+ (-> Expression (Meta Any))
(function (_ compiler)
(let [interpreter (|> compiler (get@ #.host) (:! //.Host) (get@ #//.interpreter))]
(case (interpreter code)
diff --git a/new-luxc/source/luxc/lang/translation/php/runtime.jvm.lux b/new-luxc/source/luxc/lang/translation/php/runtime.jvm.lux
index c7262a291..5f9745845 100644
--- a/new-luxc/source/luxc/lang/translation/php/runtime.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/php/runtime.jvm.lux
@@ -397,7 +397,7 @@
(def: #export artifact Text (format prefix //.extension))
(def: #export translate
- (Meta (Process Top))
+ (Meta (Process Any))
(do macro.Monad<Meta>
[_ //.init-module-buffer
_ (//.save runtime)]
diff --git a/new-luxc/source/luxc/lang/translation/php/statement.jvm.lux b/new-luxc/source/luxc/lang/translation/php/statement.jvm.lux
index afbf7e476..a20e164ca 100644
--- a/new-luxc/source/luxc/lang/translation/php/statement.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/php/statement.jvm.lux
@@ -11,7 +11,7 @@
[".T" eval]))
(def: #export (translate-def name expressionT expressionO metaV)
- (-> Text Type Expression Code (Meta Top))
+ (-> Text Type Expression Code (Meta Any))
(do macro.Monad<Meta>
[current-module macro.current-module-name
#let [def-ident [current-module name]]]
diff --git a/new-luxc/source/luxc/lang/translation/python.lux b/new-luxc/source/luxc/lang/translation/python.lux
index 8739c278d..604f06019 100644
--- a/new-luxc/source/luxc/lang/translation/python.lux
+++ b/new-luxc/source/luxc/lang/translation/python.lux
@@ -54,7 +54,7 @@
(type: #export Host
{#context [Text Nat]
#anchor (Maybe Anchor)
- #loader (-> Statement (Error Top))
+ #loader (-> Statement (Error Any))
#interpreter (-> Expression (Error PyObject))
#module-buffer (Maybe StringBuilder)
#program-buffer StringBuilder})
@@ -74,12 +74,12 @@
(def: #export python-module-name Text "module.py")
(def: #export init-module-buffer
- (Meta Top)
+ (Meta Any)
(function (_ compiler)
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #module-buffer (#.Some (StringBuilder::new [])))
- (:! Bottom))
+ (:! Nothing))
compiler)
[]])))
@@ -90,13 +90,13 @@
[old-name old-sub] (get@ #context old)
new-name (format old-name "___" (%i (nat-to-int old-sub)))]
(case (expr (set@ #.host
- (:! Bottom (set@ #context [new-name +0] old))
+ (:! Nothing (set@ #context [new-name +0] old))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #context [old-name (n/inc old-sub)])
- (:! Bottom))
+ (:! Nothing))
compiler')
[new-name output]])
@@ -118,13 +118,13 @@
(function (_ compiler)
(let [old (:! Host (get@ #.host compiler))]
(case (expr (set@ #.host
- (:! Bottom (set@ #anchor (#.Some anchor) old))
+ (:! Nothing (set@ #anchor (#.Some anchor) old))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #anchor (get@ #anchor old))
- (:! Bottom))
+ (:! Nothing))
compiler')
output])
@@ -168,7 +168,7 @@
(#e.Success output)
(#e.Success [compiler output])))))]
- [load! #loader Statement Top]
+ [load! #loader Statement Any]
[interpret #interpreter Expression PyObject]
)
@@ -191,12 +191,12 @@
module-buffer)]]
(<eval> code)))]
- [save load! python.statement Statement Top]
+ [save load! python.statement Statement Any]
[run interpret python.expression Expression PyObject]
)
(def: #export (save-module! target)
- (-> File (Meta (Process Top)))
+ (-> File (Meta (Process Any)))
(do macro.Monad<Meta>
[module macro.current-module-name
module-buffer module-buffer
diff --git a/new-luxc/source/luxc/lang/translation/python/eval.jvm.lux b/new-luxc/source/luxc/lang/translation/python/eval.jvm.lux
index 164d088df..6f4e43f9d 100644
--- a/new-luxc/source/luxc/lang/translation/python/eval.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/python/eval.jvm.lux
@@ -45,10 +45,10 @@
(getType [] PyType))
(def: (tuple lux-object host-object)
- (-> (-> PyObject (Error Top)) PyObject (Error Top))
+ (-> (-> PyObject (Error Any)) PyObject (Error Any))
(let [size (:! Nat (PyObject::__len__ [] host-object))]
(loop [idx +0
- output (:! (Array Top) (array.new size))]
+ output (:! (Array Any) (array.new size))]
(if (n/< size idx)
(case (PyObject::__getitem__ [(:! Int idx)] host-object)
(#e.Error error)
@@ -72,7 +72,7 @@
(def: value-field (PyString::new [//.variant-value-field]))
(def: (variant lux-object host-object)
- (-> (-> PyObject (Error Top)) PyObject (Error Top))
+ (-> (-> PyObject (Error Any)) PyObject (Error Any))
(case [(PyObject::__getitem__dict [tag-field] host-object)
(PyObject::__getitem__dict [flag-field] host-object)
(PyObject::__getitem__dict [value-field] host-object)]
@@ -85,7 +85,7 @@
[(lux-object value)
(#e.Success value)])
(#e.Success [(Long::intValue [] (:! Long tag))
- (: Top
+ (: Any
(case (python-type (:! PyObject flag))
"NoneType"
(host.null)
@@ -98,7 +98,7 @@
(ex.throw Not-A-Variant (Object::toString [] host-object))))
(def: (lux-object host-object)
- (-> PyObject (Error Top))
+ (-> PyObject (Error Any))
(case (python-type host-object)
"str"
(#e.Success (PyObject::asString [] host-object))
@@ -125,7 +125,7 @@
(ex.throw Unknown-Kind-Of-Host-Object (format type " " (Object::toString [] host-object)))))
(def: #export (eval code)
- (-> Expression (Meta Top))
+ (-> Expression (Meta Any))
(function (_ compiler)
(let [interpreter (|> compiler (get@ #.host) (:! //.Host) (get@ #//.interpreter))]
(case (interpreter code)
diff --git a/new-luxc/source/luxc/lang/translation/python/runtime.jvm.lux b/new-luxc/source/luxc/lang/translation/python/runtime.jvm.lux
index 8167537f5..282d7536e 100644
--- a/new-luxc/source/luxc/lang/translation/python/runtime.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/python/runtime.jvm.lux
@@ -426,7 +426,7 @@
(def: #export artifact Text (format prefix ".py"))
(def: #export translate
- (Meta (Process Top))
+ (Meta (Process Any))
(do macro.Monad<Meta>
[_ //.init-module-buffer
_ (//.save runtime)]
diff --git a/new-luxc/source/luxc/lang/translation/python/statement.jvm.lux b/new-luxc/source/luxc/lang/translation/python/statement.jvm.lux
index b267f5a64..23b51371c 100644
--- a/new-luxc/source/luxc/lang/translation/python/statement.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/python/statement.jvm.lux
@@ -11,7 +11,7 @@
[".T" eval]))
(def: #export (translate-def name expressionT expressionO metaV)
- (-> Text Type Expression Code (Meta Top))
+ (-> Text Type Expression Code (Meta Any))
(do macro.Monad<Meta>
[current-module macro.current-module-name
#let [def-ident [current-module name]]]
diff --git a/new-luxc/source/luxc/lang/translation/r.lux b/new-luxc/source/luxc/lang/translation/r.lux
index 410e167bc..0eba35760 100644
--- a/new-luxc/source/luxc/lang/translation/r.lux
+++ b/new-luxc/source/luxc/lang/translation/r.lux
@@ -56,7 +56,7 @@
(type: #export Host
{#context [Text Nat]
#anchor (Maybe Anchor)
- #loader (-> Expression (Error Top))
+ #loader (-> Expression (Error Any))
#interpreter (-> Expression (Error Object))
#module-buffer (Maybe StringBuilder)
#program-buffer StringBuilder})
@@ -82,12 +82,12 @@
(def: #export r-module-name Text "module.r")
(def: #export init-module-buffer
- (Meta Top)
+ (Meta Any)
(function (_ compiler)
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #module-buffer (#.Some (StringBuilder::new [])))
- (:! Bottom))
+ (:! Nothing))
compiler)
[]])))
@@ -98,13 +98,13 @@
[old-name old-sub] (get@ #context old)
new-name (format old-name "f___" (%i (nat-to-int old-sub)))]
(case (expr (set@ #.host
- (:! Bottom (set@ #context [new-name +0] old))
+ (:! Nothing (set@ #context [new-name +0] old))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #context [old-name (n/inc old-sub)])
- (:! Bottom))
+ (:! Nothing))
compiler')
[new-name output]])
@@ -126,13 +126,13 @@
(function (_ compiler)
(let [old (:! Host (get@ #.host compiler))]
(case (expr (set@ #.host
- (:! Bottom (set@ #anchor (#.Some anchor) old))
+ (:! Nothing (set@ #anchor (#.Some anchor) old))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #anchor (get@ #anchor old))
- (:! Bottom))
+ (:! Nothing))
compiler')
output])
@@ -176,7 +176,7 @@
(#e.Success output)
(#e.Success [compiler output])))))]
- [load! #loader Top]
+ [load! #loader Any]
[interpret #interpreter Object]
)
@@ -194,7 +194,7 @@
(lang.normalize-name (format module "$" name)))
(def: #export (save code)
- (-> Expression (Meta Top))
+ (-> Expression (Meta Any))
(do macro.Monad<Meta>
[module-buffer module-buffer
#let [_ (Appendable::append [(:! CharSequence (r.expression code))]
@@ -204,7 +204,7 @@
(def: #export run interpret)
(def: #export (save-module! target)
- (-> File (Meta (Process Top)))
+ (-> File (Meta (Process Any)))
(do macro.Monad<Meta>
[module macro.current-module-name
module-buffer module-buffer
diff --git a/new-luxc/source/luxc/lang/translation/r/eval.jvm.lux b/new-luxc/source/luxc/lang/translation/r/eval.jvm.lux
index 05d16f871..66e157e40 100644
--- a/new-luxc/source/luxc/lang/translation/r/eval.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/r/eval.jvm.lux
@@ -50,10 +50,10 @@
(host.import org/renjin/sexp/Null)
(def: (parse-tuple lux-object host-object)
- (-> (-> Object (Error Top)) ListVector (Error Top))
+ (-> (-> Object (Error Any)) ListVector (Error Any))
(let [size (:! Nat (ListVector::length [] host-object))]
(loop [idx +0
- output (:! (Array Top) (array.new size))]
+ output (:! (Array Any) (array.new size))]
(if (n/< size idx)
(case (ListVector::getElementAsSEXP [(:! Int idx)] host-object)
(#e.Error error)
@@ -65,11 +65,11 @@
(#e.Error error)
(#e.Success lux-value)
- (recur (n/inc idx) (array.write idx (:! Top lux-value) output))))
+ (recur (n/inc idx) (array.write idx (:! Any lux-value) output))))
(#e.Success output)))))
(def: (parse-variant lux-object host-object)
- (-> (-> Object (Error Top)) ListVector (Error Top))
+ (-> (-> Object (Error Any)) ListVector (Error Any))
(do e.Monad<Error>
[tag (ListVector::get-field-sexp [//.variant-tag-field] host-object)
flag (ListVector::get-field-sexp [//.variant-flag-field] host-object)
@@ -79,7 +79,7 @@
(:! IntArrayVector)
(IntArrayVector::getElementAsInt [0])
(Long::intValue []))
- (: Top
+ (: Any
(if (host.instance? Null flag)
(host.null)
//.unit))
@@ -100,7 +100,7 @@
low))))))
(def: (lux-object host-object)
- (-> Object (Error Top))
+ (-> Object (Error Any))
(cond (host.instance? StringArrayVector host-object)
(#e.Success (StringArrayVector::getElementAsString [0] (:! StringArrayVector host-object)))
@@ -132,7 +132,7 @@
(ex.throw Unknown-Kind-Of-Host-Object (format object-class " --- " text-representation)))))
(def: #export (eval code)
- (-> Expression (Meta Top))
+ (-> Expression (Meta Any))
(function (_ compiler)
(let [interpreter (|> compiler (get@ #.host) (:! //.Host) (get@ #//.interpreter))]
(case (interpreter code)
diff --git a/new-luxc/source/luxc/lang/translation/r/runtime.jvm.lux b/new-luxc/source/luxc/lang/translation/r/runtime.jvm.lux
index f13329e26..7cdc82064 100644
--- a/new-luxc/source/luxc/lang/translation/r/runtime.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/r/runtime.jvm.lux
@@ -882,7 +882,7 @@
(def: #export artifact Text (format prefix ".r"))
(def: #export translate
- (Meta (Process Top))
+ (Meta (Process Any))
(do macro.Monad<Meta>
[_ //.init-module-buffer
_ (//.save runtime)]
diff --git a/new-luxc/source/luxc/lang/translation/r/statement.jvm.lux b/new-luxc/source/luxc/lang/translation/r/statement.jvm.lux
index 7ff6a23e8..62349abcf 100644
--- a/new-luxc/source/luxc/lang/translation/r/statement.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/r/statement.jvm.lux
@@ -11,7 +11,7 @@
[".T" eval]))
(def: #export (translate-def name expressionT expressionO metaV)
- (-> Text Type Expression Code (Meta Top))
+ (-> Text Type Expression Code (Meta Any))
(do macro.Monad<Meta>
[current-module macro.current-module-name
#let [def-ident [current-module name]]]
diff --git a/new-luxc/source/luxc/lang/translation/ruby.lux b/new-luxc/source/luxc/lang/translation/ruby.lux
index 16b0813d5..c8cce4caf 100644
--- a/new-luxc/source/luxc/lang/translation/ruby.lux
+++ b/new-luxc/source/luxc/lang/translation/ruby.lux
@@ -51,7 +51,7 @@
(type: #export Host
{#context [Text Nat]
#anchor (Maybe Anchor)
- #interpreter (-> Text (Error Top))
+ #interpreter (-> Text (Error Any))
#module-buffer (Maybe StringBuilder)
#program-buffer StringBuilder})
@@ -61,19 +61,19 @@
#anchor #.None
#interpreter (let [interpreter (ScriptingContainer::new [])]
(function (_ code)
- ("lux try" (io (: Top (maybe.default [] (ScriptingContainer::runScriptlet [code] interpreter)))))))
+ ("lux try" (io (: Any (maybe.default [] (ScriptingContainer::runScriptlet [code] interpreter)))))))
#module-buffer #.None
#program-buffer (StringBuilder::new [])}))
(def: #export ruby-module-name Text "module.rb")
(def: #export init-module-buffer
- (Meta Top)
+ (Meta Any)
(function (_ compiler)
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #module-buffer (#.Some (StringBuilder::new [])))
- (:! Bottom))
+ (:! Nothing))
compiler)
[]])))
@@ -84,13 +84,13 @@
[old-name old-sub] (get@ #context old)
new-name (format old-name "___" (%i (nat-to-int old-sub)))]
(case (expr (set@ #.host
- (:! Bottom (set@ #context [new-name +0] old))
+ (:! Nothing (set@ #context [new-name +0] old))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #context [old-name (n/inc old-sub)])
- (:! Bottom))
+ (:! Nothing))
compiler')
[new-name output]])
@@ -112,13 +112,13 @@
(function (_ compiler)
(let [old (:! Host (get@ #.host compiler))]
(case (expr (set@ #.host
- (:! Bottom (set@ #anchor (#.Some anchor) old))
+ (:! Nothing (set@ #anchor (#.Some anchor) old))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #anchor (get@ #anchor old))
- (:! Bottom))
+ (:! Nothing))
compiler')
output])
@@ -151,7 +151,7 @@
(#e.Success [compiler (|> compiler (get@ #.host) (:! Host) (get@ #program-buffer))])))
(def: (execute code)
- (-> Expression (Meta Top))
+ (-> Expression (Meta Any))
(function (_ compiler)
(let [interpreter (|> compiler (get@ #.host) (:! Host) (get@ #interpreter))]
(case (interpreter code)
@@ -172,7 +172,7 @@
(lang.normalize-name (format module "$" name)))
(def: #export (save code)
- (-> Ruby (Meta Top))
+ (-> Ruby (Meta Any))
(do macro.Monad<Meta>
[module-buffer module-buffer
#let [_ (Appendable::append [(:! CharSequence code)]
@@ -180,7 +180,7 @@
(execute code)))
(def: #export (save-module! target)
- (-> File (Meta (Process Top)))
+ (-> File (Meta (Process Any)))
(do macro.Monad<Meta>
[module macro.current-module-name
module-buffer module-buffer
diff --git a/new-luxc/source/luxc/lang/translation/ruby/eval.jvm.lux b/new-luxc/source/luxc/lang/translation/ruby/eval.jvm.lux
index 348e5bcf9..49bf7f1da 100644
--- a/new-luxc/source/luxc/lang/translation/ruby/eval.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/ruby/eval.jvm.lux
@@ -36,10 +36,10 @@
(get [Object] #? Object))
(def: (tuple lux-object host-object)
- (-> (-> Object (Error Top)) RubyArray (Error Top))
+ (-> (-> Object (Error Any)) RubyArray (Error Any))
(let [size (:! Nat (RubyArray::getLength [] host-object))]
(loop [idx +0
- output (:! (Array Top) (array.new size))]
+ output (:! (Array Any) (array.new size))]
(if (n/< size idx)
(case (RubyArray::get [(:! Int idx)] host-object)
#.None
@@ -55,7 +55,7 @@
(#e.Success output)))))
(def: (variant lux-object host-object)
- (-> (-> Object (Error Top)) RubyHash (Error Top))
+ (-> (-> Object (Error Any)) RubyHash (Error Any))
(case [(RubyHash::get [(:! Object //.variant-tag-field)] host-object)
(RubyHash::get [(:! Object //.variant-flag-field)] host-object)
(RubyHash::get [(:! Object //.variant-value-field)] host-object)]
@@ -63,14 +63,14 @@
[(lux-object value)
(#.Some value)])
(#e.Success [(Long::intValue [] (:! Long tag))
- (: Top (case ?flag (#.Some _) "" #.None (host.null)))
+ (: Any (case ?flag (#.Some _) "" #.None (host.null)))
value])
_
(ex.throw Not-A-Variant "")))
(def: (lux-object host-object)
- (-> Object (Error Top))
+ (-> Object (Error Any))
(`` (cond (host.null? host-object)
(ex.throw Null-Has-No-Lux-Representation "")
@@ -100,7 +100,7 @@
)))
(def: #export (eval code)
- (-> Expression (Meta Top))
+ (-> Expression (Meta Any))
(function (_ compiler)
(let [interpreter (|> compiler (get@ #.host) (:! //.Host) (get@ #//.interpreter))]
(case (interpreter code)
diff --git a/new-luxc/source/luxc/lang/translation/ruby/runtime.jvm.lux b/new-luxc/source/luxc/lang/translation/ruby/runtime.jvm.lux
index e2bf83dfa..bb0549259 100644
--- a/new-luxc/source/luxc/lang/translation/ruby/runtime.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/ruby/runtime.jvm.lux
@@ -271,7 +271,7 @@
(def: #export artifact Text (format prefix ".rb"))
(def: #export translate
- (Meta (Process Top))
+ (Meta (Process Any))
(do macro.Monad<Meta>
[_ //.init-module-buffer
_ (//.save runtime)]
diff --git a/new-luxc/source/luxc/lang/translation/ruby/statement.jvm.lux b/new-luxc/source/luxc/lang/translation/ruby/statement.jvm.lux
index 972a6428e..135a09039 100644
--- a/new-luxc/source/luxc/lang/translation/ruby/statement.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/ruby/statement.jvm.lux
@@ -11,7 +11,7 @@
[".T" eval]))
(def: #export (translate-def name expressionT expressionO metaV)
- (-> Text Type Expression Code (Meta Top))
+ (-> Text Type Expression Code (Meta Any))
(do macro.Monad<Meta>
[current-module macro.current-module-name
#let [def-ident [current-module name]]]
diff --git a/new-luxc/source/luxc/lang/translation/scheme.lux b/new-luxc/source/luxc/lang/translation/scheme.lux
index 451d5f8e2..22cd7151e 100644
--- a/new-luxc/source/luxc/lang/translation/scheme.lux
+++ b/new-luxc/source/luxc/lang/translation/scheme.lux
@@ -55,7 +55,7 @@
(type: #export Host
{#context [Text Nat]
#anchor (Maybe Anchor)
- #loader (-> Expression (Error Top))
+ #loader (-> Expression (Error Any))
#interpreter (-> Expression (Error Object))
#module-buffer (Maybe StringBuilder)
#program-buffer StringBuilder})
@@ -82,12 +82,12 @@
(def: #export r-module-name Text (format "module" file-extension))
(def: #export init-module-buffer
- (Meta Top)
+ (Meta Any)
(function (_ compiler)
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #module-buffer (#.Some (StringBuilder::new [])))
- (:! Bottom))
+ (:! Nothing))
compiler)
[]])))
@@ -98,13 +98,13 @@
[old-name old-sub] (get@ #context old)
new-name (format old-name "f___" (%i (nat-to-int old-sub)))]
(case (expr (set@ #.host
- (:! Bottom (set@ #context [new-name +0] old))
+ (:! Nothing (set@ #context [new-name +0] old))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #context [old-name (n/inc old-sub)])
- (:! Bottom))
+ (:! Nothing))
compiler')
[new-name output]])
@@ -126,13 +126,13 @@
(function (_ compiler)
(let [old (:! Host (get@ #.host compiler))]
(case (expr (set@ #.host
- (:! Bottom (set@ #anchor (#.Some anchor) old))
+ (:! Nothing (set@ #anchor (#.Some anchor) old))
compiler))
(#e.Success [compiler' output])
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #anchor (get@ #anchor old))
- (:! Bottom))
+ (:! Nothing))
compiler')
output])
@@ -176,7 +176,7 @@
(#e.Success output)
(#e.Success [compiler output])))))]
- [load! #loader Top]
+ [load! #loader Any]
[interpret #interpreter Object]
)
@@ -189,7 +189,7 @@
(lang.normalize-name (format module "$" name)))
(def: #export (save code)
- (-> Expression (Meta Top))
+ (-> Expression (Meta Any))
(do macro.Monad<Meta>
[module-buffer module-buffer
#let [_ (Appendable::append [(:! CharSequence (scheme.expression code))]
@@ -199,7 +199,7 @@
(def: #export run interpret)
(def: #export (save-module! target)
- (-> File (Meta (Process Top)))
+ (-> File (Meta (Process Any)))
(do macro.Monad<Meta>
[module macro.current-module-name
module-buffer module-buffer
diff --git a/new-luxc/source/luxc/lang/translation/scheme/eval.jvm.lux b/new-luxc/source/luxc/lang/translation/scheme/eval.jvm.lux
index a45af1f00..056bf7599 100644
--- a/new-luxc/source/luxc/lang/translation/scheme/eval.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/scheme/eval.jvm.lux
@@ -59,36 +59,36 @@
(host.import gnu/mapping/SimpleSymbol)
(def: (parse-tuple lux-object host-object)
- (-> (-> Object (Error Top)) (FVector Object) (Error Top))
+ (-> (-> Object (Error Any)) (FVector Object) (Error Any))
(let [size (:! Nat (FVector::getBufferLength [] host-object))]
(loop [idx +0
- output (:! (Array Top) (array.new size))]
+ output (:! (Array Any) (array.new size))]
(if (n/< size idx)
(case (lux-object (FVector::get [(:! Int idx)] host-object))
(#e.Error error)
(#e.Error error)
(#e.Success lux-value)
- (recur (n/inc idx) (array.write idx (:! Top lux-value) output)))
+ (recur (n/inc idx) (array.write idx (:! Any lux-value) output)))
(#e.Success output)))))
(def: (variant tag flag value)
- (-> Nat Bool Top Top)
+ (-> Nat Bool Any Any)
[(Long::intValue [] (:! Long tag))
- (: Top
+ (: Any
(if flag
//.unit
(host.null)))
value])
(def: (to-text value)
- (-> Top Text)
+ (-> Any Text)
(let [value-text (:! Text (Object::toString [] (:! Object value)))
class-text (:! Text (Object::toString [] (Object::getClass [] (:! Object value))))]
(format value-text " : " class-text)))
(def: (parse-variant lux-object host-object)
- (-> (-> Object (Error Top)) Pair (Error Top))
+ (-> (-> Object (Error Any)) Pair (Error Any))
(let [variant-tag (Pair::getCar [] host-object)]
(if (and (host.instance? gnu/mapping/SimpleSymbol variant-tag)
(text/= //.variant-tag (Symbol::getName [] (:! Symbol variant-tag))))
@@ -103,7 +103,7 @@
(ex.throw invalid-variant (:! Text (Object::toString [] (:! Object host-object)))))))
(def: (lux-object host-object)
- (-> Object (Error Top))
+ (-> Object (Error Any))
(cond (or (host.instance? java/lang/Boolean host-object)
(host.instance? java/lang/String host-object))
(#e.Success host-object)
@@ -132,7 +132,7 @@
(ex.throw Unknown-Kind-Of-Host-Object (format object-class " --- " text-representation)))))
(def: #export (eval code)
- (-> Expression (Meta Top))
+ (-> Expression (Meta Any))
(function (_ compiler)
(let [interpreter (|> compiler (get@ #.host) (:! //.Host) (get@ #//.interpreter))]
(case (interpreter code)
diff --git a/new-luxc/source/luxc/lang/translation/scheme/runtime.jvm.lux b/new-luxc/source/luxc/lang/translation/scheme/runtime.jvm.lux
index 3bdfc614f..c3f149eeb 100644
--- a/new-luxc/source/luxc/lang/translation/scheme/runtime.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/scheme/runtime.jvm.lux
@@ -368,7 +368,7 @@
(def: #export artifact Text (format prefix //.file-extension))
(def: #export translate
- (Meta (Process Top))
+ (Meta (Process Any))
(do macro.Monad<Meta>
[_ //.init-module-buffer
_ (//.save runtime)]
diff --git a/new-luxc/source/luxc/lang/translation/scheme/statement.jvm.lux b/new-luxc/source/luxc/lang/translation/scheme/statement.jvm.lux
index 6fdb4073a..43e18cb85 100644
--- a/new-luxc/source/luxc/lang/translation/scheme/statement.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/scheme/statement.jvm.lux
@@ -11,7 +11,7 @@
[".T" eval]))
(def: #export (translate-def name expressionT expressionO metaV)
- (-> Text Type Expression Code (Meta Top))
+ (-> Text Type Expression Code (Meta Any))
(do macro.Monad<Meta>
[current-module macro.current-module-name
#let [def-ident [current-module name]]]
diff --git a/new-luxc/source/luxc/repl.lux b/new-luxc/source/luxc/repl.lux
index 0ce7fb898..b1efa5c20 100644
--- a/new-luxc/source/luxc/repl.lux
+++ b/new-luxc/source/luxc/repl.lux
@@ -67,7 +67,7 @@
(|> compiler
(set@ [#.info #.mode] #.REPL)
(set@ #.extensions
- (:! Bottom
+ (:! Nothing
{#extensionL.analysis analysisE.defaults
#extensionL.synthesis synthesisE.defaults
#extensionL.translation translationE.defaults
@@ -91,10 +91,10 @@
(-> Text Source Source)
[where offset (format input "\n" line)])
-(type: Representation (-> Top Text))
+(type: Representation (-> Any Text))
(def: (represent-together representations values)
- (-> (List Representation) (List Top) (List Text))
+ (-> (List Representation) (List Any) (List Text))
(|> (list.zip2 representations values)
(list/map (function (_ [representation value]) (representation value)))))
@@ -102,12 +102,12 @@
(Poly Representation)
(`` ($_ p.either
(do p.Monad<Parser>
- [_ (poly.this Top)]
+ [_ (poly.this Any)]
(wrap (const "[]")))
(~~ (do-template [<type> <formatter>]
[(do p.Monad<Parser>
- [_ (poly.this <type>)]
+ [_ (poly.like <type>)]
(wrap (|>> (:! <type>) <formatter>)))]
[Bool %b]
@@ -122,7 +122,7 @@
(`` ($_ p.either
(~~ (do-template [<type> <formatter>]
[(do p.Monad<Parser>
- [_ (poly.this <type>)]
+ [_ (poly.like <type>)]
(wrap (|>> (:! <type>) <formatter>)))]
[Type %type]
@@ -137,12 +137,12 @@
(do p.Monad<Parser>
[[_ elemT] (poly.apply (p.seq (poly.this List) poly.any))
elemR (poly.local (list elemT) representation)]
- (wrap (|>> (:! (List Top)) (%list elemR))))
+ (wrap (|>> (:! (List Any)) (%list elemR))))
(do p.Monad<Parser>
[[_ elemT] (poly.apply (p.seq (poly.this Maybe) poly.any))
elemR (poly.local (list elemT) representation)]
- (wrap (|>> (:! (Maybe Top))
+ (wrap (|>> (:! (Maybe Any))
(case> #.None
"#.None"
@@ -166,7 +166,7 @@
(format (%code (code.tag tag)) " " (repr recordV))
(#.Cons [tag repr] tail)
- (let [[leftV rightV] (:! [Top Top] recordV)]
+ (let [[leftV rightV] (:! [Any Any] recordV)]
(format (%code (code.tag tag)) " " (repr leftV) " "
(recur tail rightV)))))]
(format "{" record-body "}"))))))
@@ -188,13 +188,13 @@
""
(#.Cons [tag-name tag-idx repr] #.Nil)
- (let [[_tag _last? _value] (:! [Nat Text Top] variantV)]
+ (let [[_tag _last? _value] (:! [Nat Text Any] variantV)]
(if (n/= tag-idx _tag)
(format "(" (%code (code.tag tag-name)) " " (repr _value) ")")
(undefined)))
(#.Cons [tag-name tag-idx repr] tail)
- (let [[_tag _last? _value] (:! [Nat Text Top] variantV)]
+ (let [[_tag _last? _value] (:! [Nat Text Any] variantV)]
(if (n/= tag-idx _tag)
(format "(" (%code (code.tag tag-name)) " " (repr _value) ")")
(recur tail variantV)))))))))
@@ -232,7 +232,7 @@
(lastR tupleV)
(#.Cons headR tailR)
- (let [[leftV rightV] (:! [Top Top] tupleV)]
+ (let [[leftV rightV] (:! [Any Any] tupleV)]
(format (headR leftV) " " (recur tailR rightV)))))]
(format "[" tuple-body "]"))))))
@@ -263,7 +263,7 @@
))))
(def: (represent compiler type value)
- (-> Lux Type Top Text)
+ (-> Lux Type Any Text)
(case (poly.run type (representation compiler))
(#e.Success representation)
(representation value)
@@ -272,14 +272,14 @@
". . . cannot represent value . . ."))
(def: (repl-translate source-dirs target-dir code)
- (-> (List File) File Code (Meta [Type Top]))
+ (-> (List File) File Code (Meta [Type Any]))
(function (_ compiler)
(case ((translationL.translate (translationL.translate-module source-dirs target-dir)
no-aliases
code)
compiler)
(#e.Success [compiler' aliases'])
- (#e.Success [compiler' [Bottom []]])
+ (#e.Success [compiler' [Nothing []]])
(#e.Error error)
(if (ex.match? translationL.Unrecognized-Statement error)
@@ -295,7 +295,7 @@
(def: fresh-source Source [[repl-module +1 +0] +0 ""])
(def: #export (run source-dirs target-dir)
- (-> (List File) File (Task Top))
+ (-> (List File) File (Task Any))
(do task.Monad<Task>
[console (promise.future console.open)
compiler (initialize source-dirs target-dir console)]
diff --git a/new-luxc/test/test/luxc/common.lux b/new-luxc/test/test/luxc/common.lux
index 01e3d1aaa..1fd647ba9 100644
--- a/new-luxc/test/test/luxc/common.lux
+++ b/new-luxc/test/test/luxc/common.lux
@@ -14,50 +14,50 @@
[".T_jvm" eval]
[".T_jvm" runtime]
[".T_jvm" statement])
- [js]
- (js [".T_js" expression]
- [".T_js" eval]
- [".T_js" runtime]
- [".T_js" statement])
- [lua]
- (lua [".T_lua" expression]
- [".T_lua" eval]
- [".T_lua" runtime]
- [".T_lua" statement])
- [ruby]
- (ruby [".T_ruby" expression]
- [".T_ruby" eval]
- [".T_ruby" runtime]
- [".T_ruby" statement])
- [python]
- (python [".T_python" expression]
- [".T_python" eval]
- [".T_python" runtime]
- [".T_python" statement])
- [r]
- (r [".T_r" expression]
- [".T_r" eval]
- [".T_r" runtime]
- [".T_r" statement])
- [scheme]
- (scheme [".T_scheme" expression]
- [".T_scheme" eval]
- [".T_scheme" runtime]
- [".T_scheme" statement])
- [common-lisp]
- (common-lisp [".T_common-lisp" expression]
- [".T_common-lisp" eval]
- [".T_common-lisp" runtime]
- [".T_common-lisp" statement])
- [php]
- (php [".T_php" expression]
- [".T_php" eval]
- [".T_php" runtime]
- [".T_php" statement])
+ ## [js]
+ ## (js [".T_js" expression]
+ ## [".T_js" eval]
+ ## [".T_js" runtime]
+ ## [".T_js" statement])
+ ## [lua]
+ ## (lua [".T_lua" expression]
+ ## [".T_lua" eval]
+ ## [".T_lua" runtime]
+ ## [".T_lua" statement])
+ ## [ruby]
+ ## (ruby [".T_ruby" expression]
+ ## [".T_ruby" eval]
+ ## [".T_ruby" runtime]
+ ## [".T_ruby" statement])
+ ## [python]
+ ## (python [".T_python" expression]
+ ## [".T_python" eval]
+ ## [".T_python" runtime]
+ ## [".T_python" statement])
+ ## [r]
+ ## (r [".T_r" expression]
+ ## [".T_r" eval]
+ ## [".T_r" runtime]
+ ## [".T_r" statement])
+ ## [scheme]
+ ## (scheme [".T_scheme" expression]
+ ## [".T_scheme" eval]
+ ## [".T_scheme" runtime]
+ ## [".T_scheme" statement])
+ ## [common-lisp]
+ ## (common-lisp [".T_common-lisp" expression]
+ ## [".T_common-lisp" eval]
+ ## [".T_common-lisp" runtime]
+ ## [".T_common-lisp" statement])
+ ## [php]
+ ## (php [".T_php" expression]
+ ## [".T_php" eval]
+ ## [".T_php" runtime]
+ ## [".T_php" statement])
))))
-(type: #export Runner (-> Synthesis (e.Error Top)))
-(type: #export Definer (-> Ident Synthesis (e.Error Top)))
+(type: #export Runner (-> Synthesis (e.Error Any)))
+(type: #export Definer (-> Ident Synthesis (e.Error Any)))
(do-template [<name> <host>]
[(def: #export <name>
@@ -67,18 +67,18 @@
(wrap (initL.compiler host))))]
[init-jvm &host.init-host]
- [init-js js.init]
- [init-lua lua.init]
- [init-ruby ruby.init]
- [init-python python.init]
- [init-r r.init]
- [init-scheme scheme.init]
- [init-common-lisp common-lisp.init]
- [init-php php.init]
+ ## [init-js js.init]
+ ## [init-lua lua.init]
+ ## [init-ruby ruby.init]
+ ## [init-python python.init]
+ ## [init-r r.init]
+ ## [init-scheme scheme.init]
+ ## [init-common-lisp common-lisp.init]
+ ## [init-php php.init]
)
(def: (runner translate-runtime translate-expression eval init)
- (All [a] (-> (Meta Top) (-> Synthesis (Meta a)) (-> a (Meta Top)) (IO Lux)
+ (All [a] (-> (Meta Any) (-> Synthesis (Meta a)) (-> a (Meta Any)) (IO Lux)
Runner))
(function (_ synthesis)
(|> (do macro.Monad<Meta>
@@ -89,15 +89,15 @@
(macro.run (io.run init)))))
(def: (definer translate-runtime translate-expression eval init translate-def)
- (All [a] (-> (Meta Top) (-> Synthesis (Meta a)) (-> a (Meta Top)) (IO Lux)
- (-> Text Type a Code (Meta Top))
+ (All [a] (-> (Meta Any) (-> Synthesis (Meta a)) (-> a (Meta Any)) (IO Lux)
+ (-> Text Type a Code (Meta Any))
Definer))
(function (_ [module-name def-name] synthesis)
(|> (do macro.Monad<Meta>
[_ translate-runtime
valueO (translate-expression synthesis)
_ (moduleL.with-module +0 module-name
- (translate-def def-name Top valueO (' {})))
+ (translate-def def-name Any valueO (' {})))
sampleO (translate-expression (code.symbol [module-name def-name]))]
(eval sampleO))
(lang.with-current-module "")
@@ -106,26 +106,26 @@
(def: #export run-jvm (runner runtimeT_jvm.translate expressionT_jvm.translate evalT_jvm.eval init-jvm))
(def: #export def-jvm (definer runtimeT_jvm.translate expressionT_jvm.translate evalT_jvm.eval init-jvm statementT_jvm.translate-def))
-(def: #export run-js (runner runtimeT_js.translate expressionT_js.translate evalT_js.eval init-js))
-(def: #export def-js (definer runtimeT_js.translate expressionT_js.translate evalT_js.eval init-js statementT_js.translate-def))
+## (def: #export run-js (runner runtimeT_js.translate expressionT_js.translate evalT_js.eval init-js))
+## (def: #export def-js (definer runtimeT_js.translate expressionT_js.translate evalT_js.eval init-js statementT_js.translate-def))
-(def: #export run-lua (runner runtimeT_lua.translate expressionT_lua.translate evalT_lua.eval init-lua))
-(def: #export def-lua (definer runtimeT_lua.translate expressionT_lua.translate evalT_lua.eval init-lua statementT_lua.translate-def))
+## (def: #export run-lua (runner runtimeT_lua.translate expressionT_lua.translate evalT_lua.eval init-lua))
+## (def: #export def-lua (definer runtimeT_lua.translate expressionT_lua.translate evalT_lua.eval init-lua statementT_lua.translate-def))
-(def: #export run-ruby (runner runtimeT_ruby.translate expressionT_ruby.translate evalT_ruby.eval init-ruby))
-(def: #export def-ruby (definer runtimeT_ruby.translate expressionT_ruby.translate evalT_ruby.eval init-ruby statementT_ruby.translate-def))
+## (def: #export run-ruby (runner runtimeT_ruby.translate expressionT_ruby.translate evalT_ruby.eval init-ruby))
+## (def: #export def-ruby (definer runtimeT_ruby.translate expressionT_ruby.translate evalT_ruby.eval init-ruby statementT_ruby.translate-def))
-(def: #export run-python (runner runtimeT_python.translate expressionT_python.translate evalT_python.eval init-python))
-(def: #export def-python (definer runtimeT_python.translate expressionT_python.translate evalT_python.eval init-python statementT_python.translate-def))
+## (def: #export run-python (runner runtimeT_python.translate expressionT_python.translate evalT_python.eval init-python))
+## (def: #export def-python (definer runtimeT_python.translate expressionT_python.translate evalT_python.eval init-python statementT_python.translate-def))
-(def: #export run-r (runner runtimeT_r.translate expressionT_r.translate evalT_r.eval init-r))
-(def: #export def-r (definer runtimeT_r.translate expressionT_r.translate evalT_r.eval init-r statementT_r.translate-def))
+## (def: #export run-r (runner runtimeT_r.translate expressionT_r.translate evalT_r.eval init-r))
+## (def: #export def-r (definer runtimeT_r.translate expressionT_r.translate evalT_r.eval init-r statementT_r.translate-def))
-(def: #export run-scheme (runner runtimeT_scheme.translate expressionT_scheme.translate evalT_scheme.eval init-scheme))
-(def: #export def-scheme (definer runtimeT_scheme.translate expressionT_scheme.translate evalT_scheme.eval init-scheme statementT_scheme.translate-def))
+## (def: #export run-scheme (runner runtimeT_scheme.translate expressionT_scheme.translate evalT_scheme.eval init-scheme))
+## (def: #export def-scheme (definer runtimeT_scheme.translate expressionT_scheme.translate evalT_scheme.eval init-scheme statementT_scheme.translate-def))
-(def: #export run-common-lisp (runner runtimeT_common-lisp.translate expressionT_common-lisp.translate evalT_common-lisp.eval init-common-lisp))
-(def: #export def-common-lisp (definer runtimeT_common-lisp.translate expressionT_common-lisp.translate evalT_common-lisp.eval init-common-lisp statementT_common-lisp.translate-def))
+## (def: #export run-common-lisp (runner runtimeT_common-lisp.translate expressionT_common-lisp.translate evalT_common-lisp.eval init-common-lisp))
+## (def: #export def-common-lisp (definer runtimeT_common-lisp.translate expressionT_common-lisp.translate evalT_common-lisp.eval init-common-lisp statementT_common-lisp.translate-def))
-(def: #export run-php (runner runtimeT_php.translate expressionT_php.translate evalT_php.eval init-php))
-(def: #export def-php (definer runtimeT_php.translate expressionT_php.translate evalT_php.eval init-php statementT_php.translate-def))
+## (def: #export run-php (runner runtimeT_php.translate expressionT_php.translate evalT_php.eval init-php))
+## (def: #export def-php (definer runtimeT_php.translate expressionT_php.translate evalT_php.eval init-php statementT_php.translate-def))
diff --git a/new-luxc/test/test/luxc/lang/analysis/procedure/common.lux b/new-luxc/test/test/luxc/lang/analysis/procedure/common.lux
index 4cee3dce3..fba355a79 100644
--- a/new-luxc/test/test/luxc/lang/analysis/procedure/common.lux
+++ b/new-luxc/test/test/luxc/lang/analysis/procedure/common.lux
@@ -304,7 +304,7 @@
(check-success+ "lux process schedule"
(list timeC
(` ("lux function" (~' _) (~' _) (~ primC))))
- Top))
+ Any))
))))
(context: "IO procedures"
@@ -314,11 +314,11 @@
exitC (|> r.int (:: @ map code.int))]
($_ seq
(test "Can log messages to standard output."
- (check-success+ "lux io log" (list logC) Top))
+ (check-success+ "lux io log" (list logC) Any))
(test "Can throw a run-time error."
- (check-success+ "lux io error" (list logC) Bottom))
+ (check-success+ "lux io error" (list logC) Nothing))
(test "Can exit the program."
- (check-success+ "lux io exit" (list exitC) Bottom))
+ (check-success+ "lux io exit" (list exitC) Nothing))
(test "Can query the current time (as milliseconds since epoch)."
(check-success+ "lux io current-time" (list) Int))
))))
diff --git a/new-luxc/test/test/luxc/lang/analysis/procedure/host.jvm.lux b/new-luxc/test/test/luxc/lang/analysis/procedure/host.jvm.lux
index 0c27d14d1..3d0c76777 100644
--- a/new-luxc/test/test/luxc/lang/analysis/procedure/host.jvm.lux
+++ b/new-luxc/test/test/luxc/lang/analysis/procedure/host.jvm.lux
@@ -374,7 +374,7 @@
(or (text/= "java.lang.Object" throwable)
(success "jvm object throw"
(list throwableC)
- Bottom)))
+ Nothing)))
(test "jvm object class"
(success "jvm object class"
(list (code.text boxed))
@@ -415,14 +415,14 @@
(code.text "allHtmlFlavor")
(`' ("lux check" (+0 "java.awt.datatransfer.DataFlavor" (+0))
("jvm object null"))))
- Top))
+ Any))
(test "jvm member static put (final)"
(failure "jvm member static put"
(list (code.text "java.lang.System")
(code.text "out")
(`' ("lux check" (+0 "java.io.PrintStream" (+0))
("jvm object null"))))
- Top))
+ Any))
(test "jvm member static put (inheritance in)"
(success "jvm member static put"
(list (code.text "java.awt.datatransfer.DataFlavor")
@@ -430,7 +430,7 @@
(`' ("jvm object cast"
("lux check" (+0 "javax.activation.ActivationDataFlavor" (+0))
("jvm object null")))))
- Top))
+ Any))
))
(context: "Member [Virtual Field]."
diff --git a/new-luxc/test/test/luxc/lang/translation/js.lux b/new-luxc/test/test/luxc/lang/translation/js.lux
index 68bc227f2..e6443cce8 100644
--- a/new-luxc/test/test/luxc/lang/translation/js.lux
+++ b/new-luxc/test/test/luxc/lang/translation/js.lux
@@ -28,7 +28,7 @@
_
false)))
-(type: Check (-> (e.Error Top) Bool))
+(type: Check (-> (e.Error Any) Bool))
(do-template [<name> <type> <pre> <=>]
[(def: (<name> angle)
diff --git a/new-luxc/test/test/luxc/lang/translation/jvm.lux b/new-luxc/test/test/luxc/lang/translation/jvm.lux
index 54966ae65..a835ce9d4 100644
--- a/new-luxc/test/test/luxc/lang/translation/jvm.lux
+++ b/new-luxc/test/test/luxc/lang/translation/jvm.lux
@@ -477,7 +477,7 @@
(lang.with-current-module "")
(macro.run (io.run init-jvm))
(case> (#e.Success outputT)
- (case (:! (e.Error Top) outputT)
+ (case (:! (e.Error Any) outputT)
(#e.Error error)
(text.contains? exception-message error)
diff --git a/new-luxc/test/test/luxc/lang/translation/structure.lux b/new-luxc/test/test/luxc/lang/translation/structure.lux
index 2ca57cbac..6e512f3ec 100644
--- a/new-luxc/test/test/luxc/lang/translation/structure.lux
+++ b/new-luxc/test/test/luxc/lang/translation/structure.lux
@@ -30,7 +30,7 @@
(test "Can translate tuple."
(|> (run (code.tuple (list/map code.int tuple-in)))
(case> (#e.Success tuple-out)
- (let [tuple-out (:! (Array Top) tuple-out)]
+ (let [tuple-out (:! (Array Any) tuple-out)]
(and (n/= size (array.size tuple-out))
(list.every? (function (_ [left right])
(i/= left (:! Int right)))
@@ -50,11 +50,11 @@
(test "Can translate variant."
(|> (run (` ((~ (code.nat tag-in)) (~ (code.bool last?-in)) (~ (code.int value-in)))))
(case> (#e.Success valueT)
- (let [valueT (:! (Array Top) valueT)]
+ (let [valueT (:! (Array Any) valueT)]
(and (n/= +3 (array.size valueT))
(let [tag-out (:! Integer (maybe.assume (array.read +0 valueT)))
last?-out (array.read +1 valueT)
- value-out (:! Top (maybe.assume (array.read +2 valueT)))
+ value-out (:! Any (maybe.assume (array.read +2 valueT)))
same-tag? (n/= tag-in (|> tag-out host.int-to-long (:! Nat)))
same-flag? (case last?-out
(#.Some last?-out')
@@ -81,34 +81,34 @@
(<| (times +100)
(structure-spec run-jvm)))
-(context: "[JS] Structures."
- (<| (times +100)
- (structure-spec run-js)))
+## (context: "[JS] Structures."
+## (<| (times +100)
+## (structure-spec run-js)))
-(context: "[Lua] Structures."
- (<| (times +100)
- (structure-spec run-lua)))
+## (context: "[Lua] Structures."
+## (<| (times +100)
+## (structure-spec run-lua)))
-(context: "[Ruby] Structures."
- (<| (times +100)
- (structure-spec run-ruby)))
+## (context: "[Ruby] Structures."
+## (<| (times +100)
+## (structure-spec run-ruby)))
-(context: "[Python] Structures."
- (<| (times +100)
- (structure-spec run-python)))
+## (context: "[Python] Structures."
+## (<| (times +100)
+## (structure-spec run-python)))
-(context: "[R] Structures."
- (<| (times +100)
- (structure-spec run-r)))
+## (context: "[R] Structures."
+## (<| (times +100)
+## (structure-spec run-r)))
-(context: "[Scheme] Structures."
- (<| (times +100)
- (structure-spec run-scheme)))
+## (context: "[Scheme] Structures."
+## (<| (times +100)
+## (structure-spec run-scheme)))
-(context: "[Common Lisp] Structures."
- (<| (times +100)
- (structure-spec run-common-lisp)))
+## (context: "[Common Lisp] Structures."
+## (<| (times +100)
+## (structure-spec run-common-lisp)))
-(context: "[PHP] Structures."
- (<| (times +100)
- (structure-spec run-php)))
+## (context: "[PHP] Structures."
+## (<| (times +100)
+## (structure-spec run-php)))
diff --git a/stdlib/source/lux.lux b/stdlib/source/lux.lux
index 795133b33..5fbbf44b5 100644
--- a/stdlib/source/lux.lux
+++ b/stdlib/source/lux.lux
@@ -9,10 +9,10 @@
[["" +0 +0] (+0 true)]]
(+0)))])
-## (type: Top
+## (type: Any
## (Ex [a] a))
-("lux def" Top
- (+10 ["lux" "Top"]
+("lux def" Any
+ (+10 ["lux" "Any"]
(+8 (+0) (+4 +1)))
[dummy-cursor
(+10 (+1 [[dummy-cursor (+7 ["lux" "type?"])]
@@ -25,10 +25,10 @@
It can be used to write functions or data-structures that can take, or return, anything.")]]
(+0)))))])
-## (type: Bottom
+## (type: Nothing
## (All [a] a))
-("lux def" Bottom
- (+10 ["lux" "Bottom"]
+("lux def" Nothing
+ (+10 ["lux" "Nothing"]
(+7 (+0) (+4 +1)))
[dummy-cursor
(+10 (+1 [[dummy-cursor (+7 ["lux" "type?"])]
@@ -48,7 +48,7 @@
(+10 ["lux" "List"]
(+7 (+0)
(+1 ## "lux.Nil"
- Top
+ Any
## "lux.Cons"
(+2 (+4 +1)
(+9 (+4 +1) (+4 +0))))))
@@ -175,7 +175,7 @@
(+10 ["lux" "Maybe"]
(+7 #Nil
(+1 ## "lux.None"
- Top
+ Any
## "lux.Some"
(+4 +1))))
[dummy-cursor
@@ -212,7 +212,7 @@
{Type-List
("lux case" ("lux check type" (+2 Type Type))
{Type-Pair
- (+9 Bottom
+ (+9 Nothing
(+7 #Nil
(+1 ## "lux.Primitive"
(+2 Text Type-List)
@@ -468,10 +468,10 @@
(record$ #Nil))
## (type: Definition
-## [Type Code Top])
+## [Type Code Any])
("lux def" Definition
(#Named ["lux" "Definition"]
- (#Product Type (#Product Code Top)))
+ (#Product Type (#Product Code Any)))
(record$ (#Cons [(tag$ ["lux" "doc"])
(text$ "Represents all the data associated with a definition: its type, its annotations, and its value.")]
default-def-meta-exported)))
@@ -565,12 +565,12 @@
(#Named ["lux" "Module-State"]
(#Sum
## #Active
- Top
+ Any
(#Sum
## #Compiled
- Top
+ Any
## #Cached
- Top)))
+ Any)))
(record$ (#Cons [(tag$ ["lux" "tags"])
(tuple$ (#Cons (text$ "Active") (#Cons (text$ "Compiled") (#Cons (text$ "Cached") #Nil))))]
default-def-meta-exported)))
@@ -652,11 +652,11 @@
("lux def" Mode
(#Named ["lux" "Mode"]
(#Sum ## Build
- Top
+ Any
(#Sum ## Eval
- Top
+ Any
## REPL
- Top)))
+ Any)))
(record$ (#Cons [(tag$ ["lux" "tags"])
(tuple$ (#Cons (text$ "Build")
(#Cons (text$ "Eval")
@@ -700,8 +700,8 @@
## #expected (Maybe Type)
## #seed Nat
## #scope-type-vars (List Nat)
-## #extensions Bottom
-## #host Bottom})
+## #extensions Nothing
+## #host Nothing})
("lux def" Lux
(#Named ["lux" "Lux"]
(#Product ## "lux.info"
@@ -725,9 +725,9 @@
(#Product ## scope-type-vars
(#Apply Nat List)
(#Product ## extensions
- Bottom
+ Nothing
## "lux.host"
- Bottom))))))))))))
+ Nothing))))))))))))
(record$ (#Cons [(tag$ ["lux" "tags"])
(tuple$ (#Cons (text$ "info")
(#Cons (text$ "source")
@@ -1227,7 +1227,7 @@
## A name can be provided, to specify a recursive type.
(All List [a]
- (| Top
+ (| Any
[a (List a)]))")]
#Nil)
(let'' [self-name tokens] ("lux case" tokens
@@ -1374,12 +1374,12 @@
(text$ "## Tuple types:
(& Text Int Bool)
- ## Top.
+ ## Any.
(&)")]
#Nil)
("lux case" (list/reverse tokens)
{#Nil
- (return (list (symbol$ ["lux" "Top"])))
+ (return (list (symbol$ ["lux" "Any"])))
(#Cons last prevs)
(return (list (list/fold (function'' [left right] (form$ (list (tag$ ["lux" "Product"]) left right)))
@@ -1392,12 +1392,12 @@
(text$ "## Variant types:
(| Text Int Bool)
- ## Bottom.
+ ## Nothing.
(|)")]
#Nil)
("lux case" (list/reverse tokens)
{#Nil
- (return (list (symbol$ ["lux" "Bottom"])))
+ (return (list (symbol$ ["lux" "Nothing"])))
(#Cons last prevs)
(return (list (list/fold (function'' [left right] (form$ (list (tag$ ["lux" "Sum"]) left right)))
@@ -1774,7 +1774,7 @@
(text$ "Logs message to standard output.
Useful for debugging.")])
- (-> Text Top)
+ (-> Text Any)
("lux io log" message))
(def:''' (text/compose x y)
@@ -2212,7 +2212,7 @@
(def:''' (high-bits value)
(list)
- (-> ($' I64 Top) I64)
+ (-> ($' I64 Any) I64)
("lux i64 logical-right-shift" +32 value))
(def:''' low-mask
@@ -2224,7 +2224,7 @@
(def:''' (low-bits value)
(list)
- (-> ($' I64 Top) I64)
+ (-> ($' I64 Any) I64)
("lux i64 and" low-mask value))
(def:''' #export (n/< test subject)
@@ -2898,7 +2898,7 @@
(#Cons type #Nil)
("lux case" type
{[_ (#Tag "" member-name)]
- (return [(` .Top) (#Some (list member-name))])
+ (return [(` .Any) (#Some (list member-name))])
[_ (#Form (#Cons [_ (#Tag "" member-name)] member-types))]
(return [(` (& (~+ member-types))) (#Some (list member-name))])
@@ -2913,7 +2913,7 @@
(function' [case]
("lux case" case
{[_ (#Tag "" member-name)]
- (return [member-name (` .Top)])
+ (return [member-name (` .Any)])
[_ (#Form (#Cons [_ (#Tag "" member-name)] (#Cons member-type #Nil)))]
(return [member-name member-type])
@@ -2956,7 +2956,7 @@
{(#Cons [_ (#Symbol "" name)] (#Cons body #Nil))
(let' [body' (replace-syntax (list [name (` (#.Apply (~ (make-bound +1)) (~ (make-bound +0))))])
(update-bounds body))]
- (return (list (` (#.Apply .Bottom (#.UnivQ #.Nil (~ body')))))))
+ (return (list (` (#.Apply .Nothing (#.UnivQ #.Nil (~ body')))))))
_
(fail "Wrong syntax for Rec")}))
@@ -3608,7 +3608,7 @@
(def: #export (error! message)
{#.doc "## Causes an error, with the given error message.
(error! \"OH NO!\")"}
- (-> Text Bottom)
+ (-> Text Nothing)
("lux io error" message))
(macro: (default tokens state)
@@ -4027,9 +4027,9 @@
(if (empty? args)
(let [g!param (symbol$ ["" ""])
prime-name (symbol$ ["" name])
- type+ (replace-syntax (list [name (` ((~ prime-name) .Bottom))]) type)]
+ type+ (replace-syntax (list [name (` ((~ prime-name) .Nothing))]) type)]
(#Some (` ((All (~ prime-name) [(~ g!param)] (~ type+))
- .Bottom))))
+ .Nothing))))
#None)
(case args
#Nil
@@ -4432,13 +4432,13 @@
#inner _
#locals {#counter _ #mappings locals}
#captured {#counter _ #mappings closure}}
- (try-both (find (: (-> [Text [Type Top]] (Maybe Type))
+ (try-both (find (: (-> [Text [Type Any]] (Maybe Type))
(function (_ [bname [type _]])
(if (text/= name bname)
(#Some type)
#None))))
- (: (List [Text [Type Top]]) locals)
- (: (List [Text [Type Top]]) closure)))))
+ (: (List [Text [Type Any]]) locals)
+ (: (List [Text [Type Any]]) closure)))))
scopes)))
(def: (find-def-type name state)
@@ -4461,7 +4461,7 @@
(#Some def-type)))))
(def: (find-def-value name state)
- (-> Ident (Meta [Type Top]))
+ (-> Ident (Meta [Type Any]))
(let [[v-prefix v-name] name
{#info info #source source #current-module _ #modules modules
#scopes scopes #type-context types #host host
@@ -4824,10 +4824,10 @@
openings+options (parse-openings options)
#let [[openings options] openings+options]
current-module current-module-name
- #let [test-referrals (: (-> Text (List Text) (List Text) (Meta (List Top)))
+ #let [test-referrals (: (-> Text (List Text) (List Text) (Meta (List Any)))
(function (_ module-name all-defs referred-defs)
(monad/map Monad<Meta>
- (: (-> Text (Meta Top))
+ (: (-> Text (Meta Any))
(function (_ _def)
(if (is-member? all-defs _def)
(return [])
@@ -4849,10 +4849,10 @@
(-> Text Refer (Meta (List Code)))
(do Monad<Meta>
[current-module current-module-name
- #let [test-referrals (: (-> Text (List Text) (List Text) (Meta (List Top)))
+ #let [test-referrals (: (-> Text (List Text) (List Text) (Meta (List Any)))
(function (_ module-name all-defs referred-defs)
(monad/map Monad<Meta>
- (: (-> Text (Meta Top))
+ (: (-> Text (Meta Any))
(function (_ _def)
(if (is-member? all-defs _def)
(return [])
@@ -5299,7 +5299,7 @@
(do-template [<name> <to>]
[(def: #export <name>
- (-> (I64 Top) <to>)
+ (-> (I64 Any) <to>)
(|>> (:! <to>)))]
[i64 I64]
@@ -6016,7 +6016,7 @@
))
(def: (parse-end tokens)
- (-> (List Code) (Meta Top))
+ (-> (List Code) (Meta Any))
(case tokens
(^ (list))
(return [])
@@ -6297,7 +6297,7 @@
)
(def: to-significand
- (-> (I64 Top) Frac)
+ (-> (I64 Any) Frac)
(|>> ("lux i64 logical-right-shift" +11)
int-to-frac))
diff --git a/stdlib/source/lux/cli.lux b/stdlib/source/lux/cli.lux
index 72a22a267..281dfd9d5 100644
--- a/stdlib/source/lux/cli.lux
+++ b/stdlib/source/lux/cli.lux
@@ -53,7 +53,7 @@
(def: #export (this reference)
{#.doc "Checks that a token is in the inputs."}
- (-> Text (CLI Top))
+ (-> Text (CLI Any))
(function (_ inputs)
(do E.Monad<Error>
[[remaining raw] (any inputs)]
@@ -83,7 +83,7 @@
(def: #export end
{#.doc "Ensures there are no more inputs."}
- (CLI Top)
+ (CLI Any)
(function (_ inputs)
(case inputs
#.Nil (#E.Success [inputs []])
@@ -133,7 +133,7 @@
(with-gensyms [g!args g!_ g!output g!message]
(wrap (list (` ("lux program"
(.function ((~ g!program) (~ g!args))
- (case ((: (~! (..CLI (io.IO .Top)))
+ (case ((: (~! (..CLI (io.IO .Any)))
((~! do) (~! p.Monad<Parser>)
[(~+ (|> args
(list/map (function (_ [binding parser])
diff --git a/stdlib/source/lux/concurrency/actor.lux b/stdlib/source/lux/concurrency/actor.lux
index 1e512d642..77543ba78 100644
--- a/stdlib/source/lux/concurrency/actor.lux
+++ b/stdlib/source/lux/concurrency/actor.lux
@@ -61,7 +61,7 @@
(type: #export (Behavior s)
{#.doc "An actor's behavior when messages are received."}
{#handle (-> (Message s) s (Actor s) (Task s))
- #end (-> Text s (Promise Top))})
+ #end (-> Text s (Promise Any))})
(def: #export (spawn behavior init)
{#.doc "Given a behavior and initial state, spawns an actor and returns it."}
@@ -124,7 +124,7 @@
(message state self))
(def: (default-end cause state)
- (All [s] (-> Text s (Promise Top)))
+ (All [s] (-> Text s (Promise Any)))
(promise/wrap []))
(def: #export default-behavior
diff --git a/stdlib/source/lux/concurrency/atom.lux b/stdlib/source/lux/concurrency/atom.lux
index c60edd01e..10f7005d3 100644
--- a/stdlib/source/lux/concurrency/atom.lux
+++ b/stdlib/source/lux/concurrency/atom.lux
@@ -37,5 +37,5 @@
(recur []))))))
(def: #export (write value atom)
- (All [a] (-> a (Atom a) (IO Top)))
+ (All [a] (-> a (Atom a) (IO Any)))
(update (function.const value) atom))
diff --git a/stdlib/source/lux/concurrency/frp.lux b/stdlib/source/lux/concurrency/frp.lux
index caa1173c2..28d7be094 100644
--- a/stdlib/source/lux/concurrency/frp.lux
+++ b/stdlib/source/lux/concurrency/frp.lux
@@ -12,14 +12,14 @@
## [Types]
(abstract: #export (Channel a)
{#.doc "An asynchronous channel to distribute values."}
- (Atom (List (-> a (IO Top))))
+ (Atom (List (-> a (IO Any))))
(def: #export (channel _)
- (All [a] (-> Top (Channel a)))
+ (All [a] (-> Any (Channel a)))
(@abstraction (atom (list))))
(def: #export (listen listener (^@representation channel))
- (All [a] (-> (-> a (IO Top)) (Channel a) (IO Top)))
+ (All [a] (-> (-> a (IO Any)) (Channel a) (IO Any)))
## TODO: Simplify when possible.
(do io.Monad<IO>
[_ (atom.update (|>> (#.Cons listener)) channel)]
@@ -27,7 +27,7 @@
(def: #export (publish (^@representation channel) value)
{#.doc "Publish to a channel."}
- (All [a] (-> (Channel a) a (IO Top)))
+ (All [a] (-> (Channel a) a (IO Any)))
(do io.Monad<IO>
[listeners (atom.read channel)]
(monad.map @ (function (_ listener) (listener value)) listeners)))
@@ -46,7 +46,7 @@
(def: #export (pipe output input)
{#.doc "Copy/pipe the contents of a channel on to another."}
- (All [a] (-> (Channel a) (Channel a) (IO Top)))
+ (All [a] (-> (Channel a) (Channel a) (IO Any)))
(listen (publish output)
input))
@@ -76,7 +76,7 @@
output)))
(def: #export (periodic time)
- (-> Nat (Channel Top))
+ (-> Nat (Channel Any))
(let [output (channel [])]
(exec (io.run
(loop [_ []]
diff --git a/stdlib/source/lux/concurrency/promise.lux b/stdlib/source/lux/concurrency/promise.lux
index 15bad9910..3ccdc22e9 100644
--- a/stdlib/source/lux/concurrency/promise.lux
+++ b/stdlib/source/lux/concurrency/promise.lux
@@ -15,7 +15,7 @@
(abstract: #export (Promise a)
{#.doc "Represents values produced by asynchronous computations (unlike IO, which is synchronous)."}
- (Atom [(Maybe a) (List (-> a (IO Top)))])
+ (Atom [(Maybe a) (List (-> a (IO Any)))])
(def: #export (promise ?value)
(All [a] (-> (Maybe a) (Promise a)))
@@ -49,7 +49,7 @@
(resolve value (@abstraction promise)))))))
(def: #export (await f (^@representation promise))
- (All [a] (-> (-> a (IO Top)) (Promise a) Top))
+ (All [a] (-> (-> a (IO Any)) (Promise a) Any))
(let [(^@ old [_value _observers]) (io.run (atom.read promise))]
(case _value
(#.Some value)
@@ -160,7 +160,7 @@
(def: #export (wait time-millis)
{#.doc "Returns a promise that will be resolved after the specified amount of milliseconds."}
- (-> Nat (Promise Top))
+ (-> Nat (Promise Any))
(delay time-millis []))
(def: #export (time-out time-millis promise)
diff --git a/stdlib/source/lux/concurrency/semaphore.lux b/stdlib/source/lux/concurrency/semaphore.lux
index c9ac32fcb..23303a236 100644
--- a/stdlib/source/lux/concurrency/semaphore.lux
+++ b/stdlib/source/lux/concurrency/semaphore.lux
@@ -9,7 +9,7 @@
(type: State
{#open-positions Nat
- #waiting-list (List (Promise Top))})
+ #waiting-list (List (Promise Any))})
(abstract: #export Semaphore
{#.doc "A tool for controlling access to resources by multiple concurrent processes."}
@@ -22,10 +22,10 @@
#waiting-list (list)})))
(def: #export (wait semaphore)
- (Ex [k] (-> Semaphore (Promise Top)))
+ (Ex [k] (-> Semaphore (Promise Any)))
(let [semaphore (@representation semaphore)]
(io.run
- (loop [signal (: (Promise Top)
+ (loop [signal (: (Promise Any)
(promise.promise #.None))]
(do io.Monad<IO>
[state (atom.read semaphore)
@@ -44,13 +44,13 @@
(recur signal)))))))
(def: #export (signal semaphore)
- (Ex [k] (-> Semaphore (Promise Top)))
+ (Ex [k] (-> Semaphore (Promise Any)))
(let [semaphore (@representation semaphore)]
(promise.future
(loop [_ []]
(do io.Monad<IO>
[state (atom.read semaphore)
- #let [[?signal state'] (: [(Maybe (Promise Top)) State]
+ #let [[?signal state'] (: [(Maybe (Promise Any)) State]
(case (get@ #waiting-list state)
#.Nil
[#.None (update@ #open-positions inc state)]
@@ -76,15 +76,15 @@
Semaphore
(def: #export (mutex _)
- (-> Top Mutex)
+ (-> Any Mutex)
(@abstraction (semaphore +1)))
(def: (acquire mutex)
- (-> Mutex (Promise Top))
+ (-> Mutex (Promise Any))
(wait (@representation mutex)))
(def: (release mutex)
- (-> Mutex (Promise Top))
+ (-> Mutex (Promise Any))
(signal (@representation mutex)))
(def: #export (synchronize mutex procedure)
@@ -115,7 +115,7 @@
#end-turnstile (semaphore +0)}))
(def: (un-block times turnstile)
- (-> Nat Semaphore (Promise Top))
+ (-> Nat Semaphore (Promise Any))
(loop [step +0]
(if (n/< times step)
(do promise.Monad<Promise>
@@ -125,7 +125,7 @@
(do-template [<phase> <update> <goal> <turnstile>]
[(def: (<phase> (^@representation barrier))
- (-> Barrier (Promise Top))
+ (-> Barrier (Promise Any))
(do promise.Monad<Promise>
[#let [limit (refinement.un-refine (get@ #limit barrier))
goal <goal>
@@ -140,7 +140,7 @@
)
(def: #export (block barrier)
- (-> Barrier (Promise Top))
+ (-> Barrier (Promise Any))
(do promise.Monad<Promise>
[_ (start barrier)]
(end barrier)))
diff --git a/stdlib/source/lux/concurrency/stm.lux b/stdlib/source/lux/concurrency/stm.lux
index fb150d842..a7c8b3cf3 100644
--- a/stdlib/source/lux/concurrency/stm.lux
+++ b/stdlib/source/lux/concurrency/stm.lux
@@ -15,7 +15,7 @@
(abstract: #export (Var a)
{#.doc "A mutable cell containing a value, and observers that will be alerted of any change to it."}
- (Atom [a (List (-> a (IO Top)))])
+ (Atom [a (List (-> a (IO Any)))])
(def: #export (var value)
{#.doc "Creates a new STM var, with a default value."}
@@ -34,7 +34,7 @@
(:: io.Functor<IO> map product.left)))
(def: (write! new-value (^@representation var))
- (All [a] (-> a (Var a) (IO Top)))
+ (All [a] (-> a (Var a) (IO Any)))
(do io.Monad<IO>
[(^@ old [_value _observers]) (atom.read var)
succeeded? (atom.compare-and-swap old [new-value _observers] var)]
@@ -76,8 +76,8 @@
(All [a] (-> (Var a) Tx (Maybe a)))
(|> tx
(list.find (function (_ [_var _original _current])
- (is? (:! (Var Top) var)
- (:! (Var Top) _var))))
+ (is? (:! (Var Any) var)
+ (:! (Var Any) _var))))
(:: maybe.Monad<Maybe> map (function (_ [_var _original _current])
_current))
(:!!)
@@ -102,11 +102,11 @@
#.Nil
(#.Cons [_var _original _current] tx')
- (if (is? (:! (Var Top) var)
- (:! (Var Top) _var))
- (#.Cons {#var (:! (Var Top) _var)
- #original (:! Top _original)
- #current (:! Top value)}
+ (if (is? (:! (Var Any) var)
+ (:! (Var Any) _var))
+ (#.Cons {#var (:! (Var Any) _var)
+ #original (:! Any _original)
+ #current (:! Any value)}
tx')
(#.Cons {#var _var
#original _original
@@ -116,7 +116,7 @@
(def: #export (write value var)
{#.doc "Writes value to var."}
- (All [a] (-> a (Var a) (STM Top)))
+ (All [a] (-> a (Var a) (STM Any)))
(function (_ tx)
(case (find-var-value var tx)
(#.Some _)
@@ -169,7 +169,7 @@
tx))
(def: (commit-var! [_var _original _current])
- (-> (Ex [a] (Tx-Frame a)) Top)
+ (-> (Ex [a] (Tx-Frame a)) Any)
(if (is? _original _current)
[]
(io.run (write! _current _var))))
@@ -187,7 +187,7 @@
(atom false))
(def: (issue-commit commit)
- (-> Commit (IO Top))
+ (-> Commit (IO Any))
(let [entry [commit (promise #.None)]]
(loop [|commits| (io.run (atom.read pending-commits))]
(case (promise.poll |commits|)
@@ -202,7 +202,7 @@
(recur tail)))))
(def: (process-commit [stm-proc output])
- (-> [(STM Top) (Promise Top)] Top)
+ (-> [(STM Any) (Promise Any)] Any)
(let [[finished-tx value] (stm-proc fresh-tx)]
(io.run (if (can-commit? finished-tx)
(exec (list/map commit-var! finished-tx)
@@ -210,7 +210,7 @@
(issue-commit [stm-proc output])))))
(def: init-processor!
- (IO Top)
+ (IO Any)
(do io.Monad<IO>
[flag (atom.read commit-processor-flag)]
(if flag
@@ -220,7 +220,7 @@
(if was-first?
(exec (|> (io.run (atom.read pending-commits))
(promise.await (function (recur [head tail])
- (io (exec (process-commit (:! [(STM Top) (Promise Top)] head))
+ (io (exec (process-commit (:! [(STM Any) (Promise Any)] head))
(promise.await recur tail))))))
(wrap []))
(wrap [])))
diff --git a/stdlib/source/lux/concurrency/task.lux b/stdlib/source/lux/concurrency/task.lux
index 8d95842e9..911fdd2d2 100644
--- a/stdlib/source/lux/concurrency/task.lux
+++ b/stdlib/source/lux/concurrency/task.lux
@@ -70,8 +70,8 @@
ma))))
(syntax: #export (task {type s.any})
- {#.doc (doc "Makes an uninitialized Task (in this example, of Top)."
- (task Top))}
+ {#.doc (doc "Makes an uninitialized Task (in this example, of Any)."
+ (task Any))}
(wrap (list (` (: (..Task (~ type))
(P.promise #.None))))))
diff --git a/stdlib/source/lux/control/concatenative.lux b/stdlib/source/lux/control/concatenative.lux
index 1af41bbdb..2b91cac0e 100644
--- a/stdlib/source/lux/control/concatenative.lux
+++ b/stdlib/source/lux/control/concatenative.lux
@@ -86,10 +86,10 @@
(-> (~ (de-alias inputC))
(~ (de-alias outputC))))))))))))
-(def: begin! Top [])
+(def: begin! Any [])
(def: end!
- (All [a] (-> [Top a] a))
+ (All [a] (-> [Any a] a))
(function (_ [_ top])
top))
diff --git a/stdlib/source/lux/control/parser.lux b/stdlib/source/lux/control/parser.lux
index 88f2eb20d..14c6c3313 100644
--- a/stdlib/source/lux/control/parser.lux
+++ b/stdlib/source/lux/control/parser.lux
@@ -59,7 +59,7 @@
## [Parsers]
(def: #export (assert message test)
{#.doc "Fails with the given message if the test is false."}
- (All [s] (-> Text Bool (Parser s Top)))
+ (All [s] (-> Text Bool (Parser s Any)))
(function (_ input)
(if test
(#e.Success [input []])
@@ -192,7 +192,7 @@
)))
(def: #export (not p)
- (All [s a] (-> (Parser s a) (Parser s Top)))
+ (All [s a] (-> (Parser s a) (Parser s Any)))
(function (_ input)
(case (p input)
(#e.Error msg)
diff --git a/stdlib/source/lux/control/pipe.lux b/stdlib/source/lux/control/pipe.lux
index 19d67ce7d..4cbfe3504 100644
--- a/stdlib/source/lux/control/pipe.lux
+++ b/stdlib/source/lux/control/pipe.lux
@@ -35,7 +35,7 @@
(~ body))))))
(def: _reverse_
- (Syntax Top)
+ (Syntax Any)
(function (_ tokens)
(#e.Success [(list.reverse tokens) []])))
diff --git a/stdlib/source/lux/control/region.lux b/stdlib/source/lux/control/region.lux
index e26a23ab9..7397d9781 100644
--- a/stdlib/source/lux/control/region.lux
+++ b/stdlib/source/lux/control/region.lux
@@ -9,7 +9,7 @@
(coll [list "list/" Fold<List>]))))
(type: (Cleaner r m)
- (-> r (m (Error Top))))
+ (-> r (m (Error Any))))
(type: #export (Region r m a)
(-> [r (List (Cleaner r m))]
@@ -36,7 +36,7 @@
error|output))))
(def: (combine-outcomes clean-up output)
- (All [a] (-> (Error Top) (Error a) (Error a)))
+ (All [a] (-> (Error Any) (Error a) (Error a)))
(case clean-up
(#e.Success _)
output
@@ -55,7 +55,7 @@
(wrap (list/fold combine-outcomes output results))))
(def: #export (acquire Monad<m> cleaner value)
- (All [m a] (-> (Monad m) (-> a (m (Error Top))) a
+ (All [m a] (-> (Monad m) (-> a (m (Error Any))) a
(All [r] (Region r m a))))
(function (_ [region cleaners])
(:: Monad<m> wrap [(#.Cons (function (_ region) (cleaner value))
diff --git a/stdlib/source/lux/control/state.lux b/stdlib/source/lux/control/state.lux
index ab69ed9fe..296147e6b 100644
--- a/stdlib/source/lux/control/state.lux
+++ b/stdlib/source/lux/control/state.lux
@@ -52,13 +52,13 @@
(def: #export (put new-state)
{#.doc "Set the new state."}
- (All [s] (-> s (State s Top)))
+ (All [s] (-> s (State s Any)))
(function (_ state)
[new-state []]))
(def: #export (update change)
{#.doc "Compute the new state."}
- (All [s] (-> (-> s s) (State s Top)))
+ (All [s] (-> (-> s s) (State s Any)))
(function (_ state)
[(change state) []]))
@@ -134,7 +134,7 @@
(wrap [state a]))))
(def: #export (while condition body)
- (All [s] (-> (State s Bool) (State s Top) (State s Top)))
+ (All [s] (-> (State s Bool) (State s Any) (State s Any)))
(do Monad<State>
[execute? condition]
(if execute?
@@ -144,7 +144,7 @@
(wrap []))))
(def: #export (do-while condition body)
- (All [s] (-> (State s Bool) (State s Top) (State s Top)))
+ (All [s] (-> (State s Bool) (State s Any) (State s Any)))
(do Monad<State>
[_ body]
(while condition body)))
diff --git a/stdlib/source/lux/control/thread.lux b/stdlib/source/lux/control/thread.lux
index e44869043..7d46f3707 100644
--- a/stdlib/source/lux/control/thread.lux
+++ b/stdlib/source/lux/control/thread.lux
@@ -23,7 +23,7 @@
("lux box read" box)))
(def: #export (write value box)
- (All [a] (-> a (All [!] (-> (Box ! a) (Thread ! Top)))))
+ (All [a] (-> a (All [!] (-> (Box ! a) (Thread ! Any)))))
(function (_ !)
("lux box write" value box)))
diff --git a/stdlib/source/lux/control/writer.lux b/stdlib/source/lux/control/writer.lux
index 7f23e2750..3dcf64cc3 100644
--- a/stdlib/source/lux/control/writer.lux
+++ b/stdlib/source/lux/control/writer.lux
@@ -44,7 +44,7 @@
(def: #export (log l)
{#.doc "Set the log to a particular value."}
- (All [l] (-> l (Writer l Top)))
+ (All [l] (-> l (Writer l Any)))
[l []])
(struct: #export (WriterT Monoid<l> Monad<M>)
diff --git a/stdlib/source/lux/data/bit.lux b/stdlib/source/lux/data/bit.lux
index e89cf0c9d..a0f8e18a7 100644
--- a/stdlib/source/lux/data/bit.lux
+++ b/stdlib/source/lux/data/bit.lux
@@ -33,7 +33,7 @@
(def: #export (count subject)
{#.doc "Count the number of 1s in a bit-map."}
- (-> (I64 Top) Nat)
+ (-> (I64 Any) Nat)
(let [count' (n/- (|> subject (right-shift +1) (and +6148914691236517205) i64)
(i64 subject))]
(|> count'
@@ -69,7 +69,7 @@
)
(def: #export (set? idx input)
- (-> Nat (I64 Top) Bool)
+ (-> Nat (I64 Any) Bool)
(|> input (:! I64) (..and (flag idx)) (n/= +0) .not))
(do-template [<name> <main> <comp>]
diff --git a/stdlib/source/lux/data/coll/sequence.lux b/stdlib/source/lux/data/coll/sequence.lux
index f5ade6bed..4e6226dcd 100644
--- a/stdlib/source/lux/data/coll/sequence.lux
+++ b/stdlib/source/lux/data/coll/sequence.lux
@@ -59,7 +59,7 @@
(bit.and branch-idx-mask))
(def: (new-hierarchy _)
- (All [a] (-> Top (Hierarchy a)))
+ (All [a] (-> Any (Hierarchy a)))
(array.new full-node-size))
(def: (tail-off vec-size)
diff --git a/stdlib/source/lux/data/format/json.lux b/stdlib/source/lux/data/format/json.lux
index 03d4de615..9262c3d70 100644
--- a/stdlib/source/lux/data/format/json.lux
+++ b/stdlib/source/lux/data/format/json.lux
@@ -24,7 +24,7 @@
(do-template [<name> <type>]
[(type: #export <name> <type>)]
- [Null Top]
+ [Null Any]
[Boolean Bool]
[Number Frac]
[String Text]
@@ -234,7 +234,7 @@
_
(fail ($_ text/compose "JSON value is not " <desc> ".")))))]
- [null Top #Null "null"]
+ [null Any #Null "null"]
[boolean Bool #Boolean "boolean"]
[number Frac #Number "number"]
[string Text #String "string"]
@@ -255,7 +255,7 @@
(def: #export (<check> test)
{#.doc (code.text ($_ text/compose "Ensures a JSON value is a " <desc> "."))}
- (-> <type> (Reader Top))
+ (-> <type> (Reader Any))
(do p.Monad<Parser>
[head any]
(case head
@@ -395,7 +395,7 @@
(l.some l.space))
(def: data-sep
- (l.Lexer [Text Top Text])
+ (l.Lexer [Text Any Text])
($_ p.seq space~ (l.this ",") space~))
(def: null~
@@ -467,7 +467,7 @@
(wrap chars))))
(def: (kv~ json~)
- (-> (-> Top (l.Lexer JSON)) (l.Lexer [String JSON]))
+ (-> (-> Any (l.Lexer JSON)) (l.Lexer [String JSON]))
(do p.Monad<Parser>
[key string~
_ space~
@@ -478,7 +478,7 @@
(do-template [<name> <type> <open> <close> <elem-parser> <prep>]
[(def: (<name> json~)
- (-> (-> Top (l.Lexer JSON)) (l.Lexer <type>))
+ (-> (-> Any (l.Lexer JSON)) (l.Lexer <type>))
(do p.Monad<Parser>
[_ (l.this <open>)
_ space~
@@ -492,7 +492,7 @@
)
(def: (json~' _)
- (-> Top (l.Lexer JSON))
+ (-> Any (l.Lexer JSON))
($_ p.alt null~ boolean~ number~ string~ (array~ json~') (object~ json~')))
(struct: #export _ (Codec Text JSON)
diff --git a/stdlib/source/lux/data/format/xml.lux b/stdlib/source/lux/data/format/xml.lux
index d1a84d675..a725263af 100644
--- a/stdlib/source/lux/data/format/xml.lux
+++ b/stdlib/source/lux/data/format/xml.lux
@@ -304,7 +304,7 @@
(#E.Error error)))
(def: #export (node tag)
- (-> Ident (Reader Top))
+ (-> Ident (Reader Any))
(function (_ docs)
(case docs
#.Nil
@@ -338,7 +338,7 @@
(wrap [tail output]))))))
(def: #export ignore
- (Reader Top)
+ (Reader Any)
(function (_ docs)
(case docs
#.Nil
diff --git a/stdlib/source/lux/data/number.lux b/stdlib/source/lux/data/number.lux
index 2aba0da7a..72c6dbb86 100644
--- a/stdlib/source/lux/data/number.lux
+++ b/stdlib/source/lux/data/number.lux
@@ -731,7 +731,7 @@
(type: Digits (Array Nat))
(def: (make-digits _)
- (-> Top Digits)
+ (-> Any Digits)
("lux array new" bit.width))
(def: (digits-get idx digits)
@@ -955,7 +955,7 @@
(do-template [<getter> <mask> <size> <offset>]
[(def: <mask> (|> +1 (bit.left-shift <size>) dec (bit.left-shift <offset>)))
(def: (<getter> input)
- (-> (I64 Top) I64)
+ (-> (I64 Any) I64)
(|> input (bit.and <mask>) (bit.logical-right-shift <offset>) i64))]
[mantissa mantissa-mask mantissa-size +0]
@@ -964,7 +964,7 @@
)
(def: #export (bits-to-frac input)
- (-> (I64 Top) Frac)
+ (-> (I64 Any) Frac)
(let [S (sign input)
E (exponent input)
M (mantissa input)]
diff --git a/stdlib/source/lux/data/text/lexer.lux b/stdlib/source/lux/data/text/lexer.lux
index d965020e0..84495a6a8 100644
--- a/stdlib/source/lux/data/text/lexer.lux
+++ b/stdlib/source/lux/data/text/lexer.lux
@@ -63,7 +63,7 @@
(def: #export (this reference)
{#.doc "Lex a text if it matches the given sample."}
- (-> Text (Lexer Top))
+ (-> Text (Lexer Any))
(function (_ [offset tape])
(case (text.index-of' reference offset tape)
(#.Some where)
@@ -87,7 +87,7 @@
(def: #export end
{#.doc "Ensure the lexer's input is empty."}
- (Lexer Top)
+ (Lexer Any)
(function (_ (^@ input [offset tape]))
(if (n/= offset (text.size tape))
(#e.Success [input []])
diff --git a/stdlib/source/lux/data/text/regex.lux b/stdlib/source/lux/data/text/regex.lux
index f644c4669..cf0d69475 100644
--- a/stdlib/source/lux/data/text/regex.lux
+++ b/stdlib/source/lux/data/text/regex.lux
@@ -309,7 +309,7 @@
))
(def: (unflatten^ lexer)
- (-> (l.Lexer Text) (l.Lexer [Text Top]))
+ (-> (l.Lexer Text) (l.Lexer [Text Any]))
(p.seq lexer (:: p.Monad<Parser> wrap [])))
(def: (|||^ left right)
diff --git a/stdlib/source/lux/host.jvm.lux b/stdlib/source/lux/host.jvm.lux
index 1f920c0b1..5fbeae68d 100644
--- a/stdlib/source/lux/host.jvm.lux
+++ b/stdlib/source/lux/host.jvm.lux
@@ -246,7 +246,7 @@
["float" (primitive "java.lang.Float")]
["double" (primitive "java.lang.Double")]
["char" (primitive "java.lang.Character")]
- ["void" .Top])
+ ["void" .Any])
_
#.None))
@@ -264,7 +264,7 @@
["long" .Int]
["float" .Frac]
["double" .Frac]
- ["void" .Top])
+ ["void" .Any])
_
#.None))
@@ -530,7 +530,7 @@
(-> Text Text (Syntax Code))
(do p.Monad<Parser>
[#let [dotted-name (format "::" field-name)]
- [_ _ value] (: (Syntax [Top Top Code])
+ [_ _ value] (: (Syntax [Any Any Code])
(s.form ($_ p.seq (s.this (' :=)) (s.this (code.symbol ["" dotted-name])) s.any)))]
(wrap (`' ((~ (code.text (format "jvm putfield" ":" class-name ":" field-name))) _jvm_this (~ value))))))
@@ -657,7 +657,7 @@
(s.this (' >))))
(def: (assert-no-periods name)
- (-> Text (Syntax Top))
+ (-> Text (Syntax Any))
(p.assert "Names in class declarations cannot contain periods."
(not (text.contains? "." name))))
@@ -1809,8 +1809,8 @@
(` ((~ setter-name) (~ g!value)))
(` ((~ setter-name) (~ g!value) (~ g!obj))))
setter-type (if import-field-static?
- (` (All [(~+ tvar-asts)] (-> (~ typeC) (IO Top))))
- (` (All [(~+ tvar-asts)] (-> (~ typeC) (~ classC) (IO Top)))))
+ (` (All [(~+ tvar-asts)] (-> (~ typeC) (IO Any))))
+ (` (All [(~+ tvar-asts)] (-> (~ typeC) (~ classC) (IO Any)))))
setter-value (with-mode-field-set import-field-mode import-field-type g!value)
setter-value (if import-field-maybe?
(` (!!! (~ setter-value)))
@@ -1840,7 +1840,7 @@
("jvm invokevirtual:java.lang.Class:isInterface:" class))
(def: (load-class class-name)
- (-> Text (Either Text (primitive "java.lang.Class" [Top])))
+ (-> Text (Either Text (primitive "java.lang.Class" [Any])))
(try ("jvm invokestatic:java.lang.Class:forName:java.lang.String" class-name)))
(def: (class-kind [class-name _])
@@ -1942,7 +1942,7 @@
(def: (type->class-name type)
(-> Type (Meta Text))
- (if (type/= Top type)
+ (if (type/= Any type)
(:: Monad<Meta> wrap "java.lang.Object")
(case type
(#.Primitive name params)
diff --git a/stdlib/source/lux/io.lux b/stdlib/source/lux/io.lux
index d35584fd1..21d70de61 100644
--- a/stdlib/source/lux/io.lux
+++ b/stdlib/source/lux/io.lux
@@ -9,7 +9,7 @@
(type: #export (IO a)
{#.doc "A type that represents synchronous, effectful computations that may interact with the outside world."}
- (-> Bottom a))
+ (-> Nothing a))
(macro: #export (io tokens state)
{#.doc (doc "Delays the evaluation of an expression, by wrapping it in an IO 'thunk'."
@@ -27,13 +27,13 @@
(struct: #export _ (Functor IO)
(def: (map f ma)
- (io (f (ma (:! Bottom []))))))
+ (io (f (ma (:! Nothing []))))))
(struct: #export _ (Apply IO)
(def: functor Functor<IO>)
(def: (apply ff fa)
- (io ((ff (:! Bottom [])) (fa (:! Bottom []))))))
+ (io ((ff (:! Nothing [])) (fa (:! Nothing []))))))
(struct: #export _ (Monad IO)
(def: functor Functor<IO>)
@@ -42,15 +42,15 @@
(io x))
(def: (join mma)
- (io ((mma (:! Bottom [])) (:! Bottom [])))))
+ (io ((mma (:! Nothing [])) (:! Nothing [])))))
(def: #export (run action)
{#.doc "A way to execute IO computations and perform their side-effects."}
(All [a] (-> (IO a) a))
- (action (:! Bottom [])))
+ (action (:! Nothing [])))
(def: #export (exit code)
- (-> Int (IO Bottom))
+ (-> Int (IO Nothing))
(io ("lux io exit" code)))
## Process
diff --git a/stdlib/source/lux/lang.lux b/stdlib/source/lux/lang.lux
index 9f164b719..4c467c7fb 100644
--- a/stdlib/source/lux/lang.lux
+++ b/stdlib/source/lux/lang.lux
@@ -10,7 +10,7 @@
(macro ["s" syntax #+ syntax:])))
(type: #export Eval
- (-> Type Code (Meta Top)))
+ (-> Type Code (Meta Any)))
(def: #export (fail message)
(All [a] (-> Text (Meta a)))
diff --git a/stdlib/source/lux/lang/analysis/case.lux b/stdlib/source/lux/lang/analysis/case.lux
index 3140a9d7e..744d3cf24 100644
--- a/stdlib/source/lux/lang/analysis/case.lux
+++ b/stdlib/source/lux/lang/analysis/case.lux
@@ -168,7 +168,7 @@
[Deg (#.Deg pattern-value) (#analysisL.Deg pattern-value)]
[Frac (#.Frac pattern-value) (#analysisL.Frac pattern-value)]
[Text (#.Text pattern-value) (#analysisL.Text pattern-value)]
- [Top (#.Tuple #.Nil) #analysisL.Unit])
+ [Any (#.Tuple #.Nil) #analysisL.Unit])
(^ [cursor (#.Tuple (list singleton))])
(analyse-pattern #.None inputT singleton next)
diff --git a/stdlib/source/lux/lang/analysis/primitive.lux b/stdlib/source/lux/lang/analysis/primitive.lux
index f154932e6..74596fba2 100644
--- a/stdlib/source/lux/lang/analysis/primitive.lux
+++ b/stdlib/source/lux/lang/analysis/primitive.lux
@@ -24,5 +24,5 @@
(def: #export unit
(Meta Analysis)
(do macro.Monad<Meta>
- [_ (typeA.infer Top)]
+ [_ (typeA.infer Any)]
(wrap (#//.Primitive #//.Unit))))
diff --git a/stdlib/source/lux/lang/analysis/structure.lux b/stdlib/source/lux/lang/analysis/structure.lux
index 8e3611e67..4e91baad7 100644
--- a/stdlib/source/lux/lang/analysis/structure.lux
+++ b/stdlib/source/lux/lang/analysis/structure.lux
@@ -299,7 +299,7 @@
(case record
## empty-record = empty-tuple = unit = []
#.Nil
- (:: macro.Monad<Meta> wrap [(list) Top])
+ (:: macro.Monad<Meta> wrap [(list) Any])
(#.Cons [head-k head-v] _)
(do macro.Monad<Meta>
diff --git a/stdlib/source/lux/lang/analysis/type.lux b/stdlib/source/lux/lang/analysis/type.lux
index 6d06d5cff..a7f9b3b29 100644
--- a/stdlib/source/lux/lang/analysis/type.lux
+++ b/stdlib/source/lux/lang/analysis/type.lux
@@ -42,7 +42,7 @@
output))))
(def: #export (infer actualT)
- (-> Type (Meta Top))
+ (-> Type (Meta Any))
(do macro.Monad<Meta>
[expectedT macro.expected-type]
(with-env
diff --git a/stdlib/source/lux/lang/init.lux b/stdlib/source/lux/lang/init.lux
index a1ef4ffb8..80e6d4740 100644
--- a/stdlib/source/lux/lang/init.lux
+++ b/stdlib/source/lux/lang/init.lux
@@ -35,7 +35,7 @@
#.mode #.Build})
(def: #export (compiler host)
- (-> Top Lux)
+ (-> Any Lux)
{#.info ..info
#.source dummy-source
#.cursor .dummy-cursor
@@ -46,11 +46,11 @@
#.expected #.None
#.seed +0
#.scope-type-vars (list)
- #.extensions (:! Bottom
+ #.extensions (:! Nothing
[]
## {#extensionL.analysis analysisE.defaults
## #extensionL.synthesis synthesisE.defaults
## #extensionL.translation translationE.defaults
## #extensionL.statement statementE.defaults}
)
- #.host (:! Bottom host)})
+ #.host (:! Nothing host)})
diff --git a/stdlib/source/lux/lang/module.lux b/stdlib/source/lux/lang/module.lux
index d5efb1d7e..161fd073a 100644
--- a/stdlib/source/lux/lang/module.lux
+++ b/stdlib/source/lux/lang/module.lux
@@ -56,7 +56,7 @@
#.module-state #.Active})
(def: #export (set-annotations annotations)
- (-> Code (Meta Top))
+ (-> Code (Meta Any))
(do macro.Monad<Meta>
[self-name macro.current-module-name
self macro.current-module]
@@ -72,7 +72,7 @@
(//.throw cannot-set-module-annotations-more-than-once [self-name old annotations]))))
(def: #export (import module)
- (-> Text (Meta Top))
+ (-> Text (Meta Any))
(do macro.Monad<Meta>
[self-name macro.current-module-name]
(function (_ compiler)
@@ -82,7 +82,7 @@
[]]))))
(def: #export (alias alias module)
- (-> Text Text (Meta Top))
+ (-> Text Text (Meta Any))
(do macro.Monad<Meta>
[self-name macro.current-module-name]
(function (_ compiler)
@@ -141,7 +141,7 @@
(do-template [<setter> <asker> <tag>]
[(def: #export (<setter> module-name)
- (-> Text (Meta Top))
+ (-> Text (Meta Any))
(function (_ compiler)
(case (|> compiler (get@ #.modules) (plist.get module-name))
(#.Some module)
@@ -194,7 +194,7 @@
)
(def: (ensure-undeclared-tags module-name tags)
- (-> Text (List Tag) (Meta Top))
+ (-> Text (List Tag) (Meta Any))
(do macro.Monad<Meta>
[bindings (..tags module-name)
_ (monad.map @
@@ -209,7 +209,7 @@
(wrap [])))
(def: #export (declare-tags tags exported? type)
- (-> (List Tag) Bool Type (Meta Top))
+ (-> (List Tag) Bool Type (Meta Any))
(do macro.Monad<Meta>
[self-name macro.current-module-name
[type-module type-name] (case type
diff --git a/stdlib/source/lux/lang/syntax.lux b/stdlib/source/lux/lang/syntax.lux
index bc1543cac..8029b5975 100644
--- a/stdlib/source/lux/lang/syntax.lux
+++ b/stdlib/source/lux/lang/syntax.lux
@@ -81,7 +81,7 @@
## This is just a helper parser to find text which doesn't run into
## any special character sequences for multi-line comments.
(def: comment-bound^
- (l.Lexer Top)
+ (l.Lexer Any)
($_ p.either
(l.this new-line)
(l.this ")#")
diff --git a/stdlib/source/lux/lang/type.lux b/stdlib/source/lux/lang/type.lux
index 1bfea13d6..36e6a74a8 100644
--- a/stdlib/source/lux/lang/type.lux
+++ b/stdlib/source/lux/lang/type.lux
@@ -274,8 +274,8 @@
(#.Cons type types')
(<ctor> type (<name> types'))))]
- [variant Bottom #.Sum]
- [tuple Top #.Product]
+ [variant Nothing #.Sum]
+ [tuple Any #.Product]
)
(def: #export (function inputs output)
diff --git a/stdlib/source/lux/lang/type/check.lux b/stdlib/source/lux/lang/type/check.lux
index 4537ae38d..61001d8be 100644
--- a/stdlib/source/lux/lang/type/check.lux
+++ b/stdlib/source/lux/lang/type/check.lux
@@ -203,7 +203,7 @@
(ex.throw unknown-type-var id))))
(def: #export (write type id)
- (-> Type Var (Check Top))
+ (-> Type Var (Check Any))
(function (_ context)
(case (|> context (get@ #.var-bindings) (var::get id))
(#.Some (#.Some bound))
@@ -217,7 +217,7 @@
(ex.throw unknown-type-var id))))
(def: (update type id)
- (-> Type Var (Check Top))
+ (-> Type Var (Check Any))
(function (_ context)
(case (|> context (get@ #.var-bindings) (var::get id))
(#.Some _)
@@ -243,7 +243,7 @@
(get@ #.var-bindings context)])))
(def: (set-bindings value)
- (-> (List [Var (Maybe Type)]) (Check Top))
+ (-> (List [Var (Maybe Type)]) (Check Any))
(function (_ context)
(#e.Success [(set@ #.var-bindings value context)
[]])))
@@ -319,7 +319,7 @@
(#e.Error message)))
(def: #export (assert message test)
- (-> Text Bool (Check Top))
+ (-> Text Bool (Check Any))
(function (_ context)
(if test
(#e.Success [context []])
@@ -365,13 +365,13 @@
(else (maybe.default (#.Var id) ?bound)))))
(def: (link-2 left right)
- (-> Var Var (Check Top))
+ (-> Var Var (Check Any))
(do Monad<Check>
[_ (write (#.Var right) left)]
(write (#.Var left) right)))
(def: (link-3 interpose to from)
- (-> Var Var Var (Check Top))
+ (-> Var Var Var (Check Any))
(do Monad<Check>
[_ (update (#.Var interpose) from)]
(update (#.Var to) interpose)))
@@ -449,7 +449,7 @@
(check' etype atype assumptions))))))
(def: (with-error-stack on-error check)
- (All [a] (-> (-> Top Text) (Check a) (Check a)))
+ (All [a] (-> (-> Any Text) (Check a) (Check a)))
(function (_ context)
(case (check context)
(#e.Error error)
@@ -625,7 +625,7 @@
(def: #export (check expected actual)
{#.doc "Type-check to ensure that the 'expected' type subsumes the 'actual' type."}
- (-> Type Type (Check Top))
+ (-> Type Type (Check Any))
(do Monad<Check>
[assumptions (check' expected actual (list))]
(wrap [])))
diff --git a/stdlib/source/lux/macro.lux b/stdlib/source/lux/macro.lux
index 8131db902..890ed5273 100644
--- a/stdlib/source/lux/macro.lux
+++ b/stdlib/source/lux/macro.lux
@@ -97,7 +97,7 @@
(def: #export (assert message test)
{#.doc "Fails with the given message if the test is false."}
- (-> Text Bool (Meta Top))
+ (-> Text Bool (Meta Any))
(function (_ compiler)
(if test
(#e.Success [compiler []])
@@ -464,19 +464,19 @@
{#.doc "Looks-up the type of a local variable somewhere in the environment."}
(-> Text (Meta Type))
(function (_ compiler)
- (let [test (: (-> [Text [Type Top]] Bool)
+ (let [test (: (-> [Text [Type Any]] Bool)
(|>> product.left (text/= name)))]
(case (do maybe.Monad<Maybe>
[scope (list.find (function (_ env)
- (or (list.any? test (: (List [Text [Type Top]])
+ (or (list.any? test (: (List [Text [Type Any]])
(get@ [#.locals #.mappings] env)))
- (list.any? test (: (List [Text [Type Top]])
+ (list.any? test (: (List [Text [Type Any]])
(get@ [#.captured #.mappings] env)))))
(get@ #.scopes compiler))
[_ [type _]] (try-both (list.find test)
- (: (List [Text [Type Top]])
+ (: (List [Text [Type Any]])
(get@ [#.locals #.mappings] scope))
- (: (List [Text [Type Top]])
+ (: (List [Text [Type Any]])
(get@ [#.captured #.mappings] scope)))]
(wrap type))
(#.Some var-type)
@@ -535,7 +535,7 @@
(find-def-type name))))
(def: #export (find-type-def name)
- {#.doc "Finds the value of a type definition (such as Int, Top or Lux)."}
+ {#.doc "Finds the value of a type definition (such as Int, Any or Lux)."}
(-> Ident (Meta Type))
(do Monad<Meta>
[[def-type def-data def-value] (find-def name)]
diff --git a/stdlib/source/lux/macro/poly.lux b/stdlib/source/lux/macro/poly.lux
index 63590953b..4c0363df0 100644
--- a/stdlib/source/lux/macro/poly.lux
+++ b/stdlib/source/lux/macro/poly.lux
@@ -165,7 +165,7 @@
list.reverse))))]
(recur (inc current-arg)
(|> env'
- (dict.put partialI [.Bottom partialC])
+ (dict.put partialI [.Nothing partialC])
(dict.put partial-varI [(#.Bound partial-varI) partial-varL]))
(#.Cons partial-varL all-varsL))))
[all-varsL env']))]]
@@ -196,7 +196,7 @@
(do-template [<name> <test>]
[(def: #export (<name> expected)
- (-> Type (Poly Top))
+ (-> Type (Poly Any))
(do p.Monad<Parser>
[actual any]
(if (<test> expected actual)
@@ -235,7 +235,7 @@
(p.fail ($_ text/compose "Not a bound type: " (type.to-text headT))))))
(def: #export (var id)
- (-> Nat (Poly Top))
+ (-> Nat (Poly Any))
(do p.Monad<Parser>
[env ..env
headT any]
@@ -280,10 +280,10 @@
(do p.Monad<Parser>
[headT any]
(case (type.un-name headT)
- (#.Apply (#.Named ["lux" "Bottom"] _) (#.UnivQ _ headT'))
+ (#.Apply (#.Named ["lux" "Nothing"] _) (#.UnivQ _ headT'))
(do @
[[recT _ output] (|> poly
- (with-extension .Bottom)
+ (with-extension .Nothing)
(with-extension headT)
(local (list headT')))]
(wrap [recT output]))
@@ -297,7 +297,7 @@
[env ..env
headT any]
(case (type.un-name headT)
- (^multi (#.Apply (#.Named ["lux" "Bottom"] _) (#.Bound funcT-idx))
+ (^multi (#.Apply (#.Named ["lux" "Nothing"] _) (#.Bound funcT-idx))
(n/= +0 (adjusted-idx env funcT-idx))
[(dict.get +0 env) (#.Some [self-type self-call])])
(wrap self-call)
@@ -404,7 +404,7 @@
(|> (dict.get idx env) maybe.assume product.left (to-code env))
(` (.$ (~ (code.nat (dec idx)))))))
- (#.Apply (#.Named ["lux" "Bottom"] _) (#.Bound idx))
+ (#.Apply (#.Named ["lux" "Nothing"] _) (#.Bound idx))
(let [idx (adjusted-idx env idx)]
(if (n/= +0 idx)
(|> (dict.get idx env) maybe.assume product.left (to-code env))
diff --git a/stdlib/source/lux/macro/poly/equality.lux b/stdlib/source/lux/macro/poly/equality.lux
index 4cf8b2de0..8df347bba 100644
--- a/stdlib/source/lux/macro/poly/equality.lux
+++ b/stdlib/source/lux/macro/poly/equality.lux
@@ -45,7 +45,7 @@
(wrap (` (: (~ (@Eq inputT))
<eq>))))]
- [(poly.this Top) (function ((~ g!_) (~ g!_) (~ g!_)) true)]
+ [(poly.this Any) (function ((~ g!_) (~ g!_) (~ g!_)) true)]
[(poly.like Bool) bool.Eq<Bool>]
[(poly.like Nat) number.Eq<Nat>]
[(poly.like Int) number.Eq<Int>]
diff --git a/stdlib/source/lux/macro/poly/json.lux b/stdlib/source/lux/macro/poly/json.lux
index 1bf0cba96..ba20f7627 100644
--- a/stdlib/source/lux/macro/poly/json.lux
+++ b/stdlib/source/lux/macro/poly/json.lux
@@ -87,7 +87,7 @@
(wrap (` (: (~ (@JSON//encode inputT))
<encoder>))))]
- [(poly.this Top) (function ((~ g!_) (~ (code.symbol ["" "0"]))) #//.Null)]
+ [(poly.this Any) (function ((~ g!_) (~ (code.symbol ["" "0"]))) #//.Null)]
[(poly.like Bool) (|>> #//.Boolean)]
[(poly.like Nat) (:: (~! ..Codec<JSON,Nat>) (~' encode))]
[(poly.like Int) (:: (~! ..Codec<JSON,Int>) (~' encode))]
@@ -203,7 +203,7 @@
(wrap (` (: (~ (@JSON//decode inputT))
<decoder>))))]
- [(poly.this Top) //.null]
+ [(poly.this Any) //.null]
[(poly.like Bool) //.boolean]
[(poly.like Nat) (p.codec (~! ..Codec<JSON,Nat>) //.any)]
[(poly.like Int) (p.codec (~! ..Codec<JSON,Int>) //.any)]
diff --git a/stdlib/source/lux/macro/syntax.lux b/stdlib/source/lux/macro/syntax.lux
index d7621eba4..0268cae29 100644
--- a/stdlib/source/lux/macro/syntax.lux
+++ b/stdlib/source/lux/macro/syntax.lux
@@ -80,7 +80,7 @@
(def: #export (this ast)
{#.doc "Ensures the given Code is the next input."}
- (-> Code (Syntax Top))
+ (-> Code (Syntax Any))
(function (_ tokens)
(case tokens
(#.Cons [token tokens'])
@@ -143,7 +143,7 @@
(def: #export end!
{#.doc "Ensures there are no more inputs."}
- (Syntax Top)
+ (Syntax Any)
(function (_ tokens)
(case tokens
#.Nil (#e.Success [tokens []])
diff --git a/stdlib/source/lux/macro/syntax/common/reader.lux b/stdlib/source/lux/macro/syntax/common/reader.lux
index 49ef3851d..c84cc5624 100644
--- a/stdlib/source/lux/macro/syntax/common/reader.lux
+++ b/stdlib/source/lux/macro/syntax/common/reader.lux
@@ -50,7 +50,7 @@
(s.tuple (p.seq s.text s.text)))
(def: (_definition-anns^ _)
- (-> Top (Syntax //.Annotations))
+ (-> Any (Syntax //.Annotations))
(p.alt (s.this (' #.Nil))
(s.form (do p.Monad<Parser>
[_ (s.this (' #.Cons))
@@ -60,7 +60,7 @@
))
(def: (flat-list^ _)
- (-> Top (Syntax (List Code)))
+ (-> Any (Syntax (List Code)))
(p.either (do p.Monad<Parser>
[_ (s.this (' #.Nil))]
(wrap (list)))
diff --git a/stdlib/source/lux/math/constructive.lux b/stdlib/source/lux/math/constructive.lux
index 25fd6a29f..8d375fad7 100644
--- a/stdlib/source/lux/math/constructive.lux
+++ b/stdlib/source/lux/math/constructive.lux
@@ -120,7 +120,7 @@
{}
- .Top))))
+ .Any))))
(#.Some meaning)
(wrap (.list (.` (.type: (~+ (scw.export export?))
@@ -185,7 +185,7 @@
(~ meaning)))))))
(.type: #export (not p)
- (-> p .Bottom))
+ (-> p .Nothing))
(.type: #export (Test p)
(#True p)
@@ -194,6 +194,6 @@
(exception: #export absurd)
(.def: #export absurdity
- (.All [p] (-> p .Bottom))
+ (.All [p] (-> p .Nothing))
(.function (_ proof)
(.error! (ex.construct absurd []))))
diff --git a/stdlib/source/lux/math/random.lux b/stdlib/source/lux/math/random.lux
index cdb65971c..55c504585 100644
--- a/stdlib/source/lux/math/random.lux
+++ b/stdlib/source/lux/math/random.lux
@@ -24,7 +24,7 @@
(type: #export #rec PRNG
{#.doc "An abstract way to represent any PRNG."}
- (-> Top [PRNG I64]))
+ (-> Any [PRNG I64]))
(type: #export (Random a)
{#.doc "A producer of random values based on a PRNG."}
@@ -248,7 +248,7 @@
{#.doc "An implementation of the PCG32 algorithm.
For more information, please see: http://www.pcg-random.org/"}
- (-> [(I64 Top) (I64 Top)] PRNG)
+ (-> [(I64 Any) (I64 Any)] PRNG)
(function (_ _)
[(|> seed .nat (n/* pcg-32-magic-mult) ("lux i64 +" inc) [inc] pcg-32)
(let [rot (|> seed .i64 (bit.logical-right-shift +59))]
@@ -263,7 +263,7 @@
{#.doc "An implementation of the Xoroshiro128+ algorithm.
For more information, please see: http://xoroshiro.di.unimi.it/"}
- (-> [(I64 Top) (I64 Top)] PRNG)
+ (-> [(I64 Any) (I64 Any)] PRNG)
(function (_ _)
[(let [s01 (bit.xor s0 s1)]
(xoroshiro-128+ [(|> s0
diff --git a/stdlib/source/lux/test.lux b/stdlib/source/lux/test.lux
index c78424559..33ac37423 100644
--- a/stdlib/source/lux/test.lux
+++ b/stdlib/source/lux/test.lux
@@ -22,7 +22,7 @@
(type: #export Seed
{#.doc "The seed value used for random testing (if that feature is used)."}
- (I64 Top))
+ (I64 Any))
(type: #export Test
(r.Random (Promise [Counters Text])))
@@ -91,7 +91,7 @@
[prng result])))
(def: (times-failure seed documentation)
- (-> (I64 Top) Text Text)
+ (-> (I64 Any) Text Text)
(format "Failed with this seed: " (%n (.nat seed)) "\n"
documentation))
@@ -227,7 +227,7 @@
list.reverse
(monad.map @ exported-tests)
(:: @ map list/join)))]
- (wrap (list (` (: (~! (IO Top))
+ (wrap (list (` (: (~! (IO Any))
((~! io) (exec ((~! do) (~! promise.Monad<Promise>)
[(~' #let) [(~ g!total-successes) +0
(~ g!total-failures) +0]
diff --git a/stdlib/source/lux/type/abstract.lux b/stdlib/source/lux/type/abstract.lux
index be53d4d9d..2caaf62bb 100644
--- a/stdlib/source/lux/type/abstract.lux
+++ b/stdlib/source/lux/type/abstract.lux
@@ -58,7 +58,7 @@
(let [[module kind] (ident-for #..Representation)])))
(def: (install-casts' this-module-name name type-vars)
- (-> Text Text (List Text) (Meta Top))
+ (-> Text Text (List Text) (Meta Any))
(do macro.Monad<Meta>
[this-module (macro.find-module this-module-name)
#let [type-varsC (list/map code.local-symbol type-vars)
@@ -96,7 +96,7 @@
[]]))))
(def: (un-install-casts' this-module-name)
- (-> Text (Meta Top))
+ (-> Text (Meta Any))
(do macro.Monad<Meta>
[this-module (macro.find-module this-module-name)
#let [this-module (|> this-module
diff --git a/stdlib/source/lux/type/resource.lux b/stdlib/source/lux/type/resource.lux
index c25db4aab..2c7062c1a 100644
--- a/stdlib/source/lux/type/resource.lux
+++ b/stdlib/source/lux/type/resource.lux
@@ -137,7 +137,7 @@
(wrap (list& head tail))))))))
(def: (no-op Monad<m>)
- (All [m] (-> (Monad m) (Linear m Top)))
+ (All [m] (-> (Monad m) (Linear m Any)))
(function (_ context) (:: Monad<m> wrap [context []])))
(do-template [<name> <m> <monad>]
@@ -166,7 +166,7 @@
(Procedure (~! <m>)
[(~+ g!inputsT+) (~ g!context)]
[(~+ g!outputsT+) (~ g!context)]
- .Top))
+ .Any))
(function ((~ g!_) [(~+ g!inputs) (~ g!context)])
(:: (~! <monad>) (~' wrap) [[(~+ g!outputs) (~ g!context)] []]))))))))))]
@@ -191,7 +191,7 @@
(Procedure (~! <m>)
[<from> (~ g!context)]
[<to> (~ g!context)]
- .Top))
+ .Any))
(function ((~ g!_) [<from> (~ g!context)])
(:: (~! <monad>) (~' wrap) [[<to> (~ g!context)] []])))))))))]
diff --git a/stdlib/source/lux/world/blob.jvm.lux b/stdlib/source/lux/world/blob.jvm.lux
index 88b1913e9..df9fcf8d2 100644
--- a/stdlib/source/lux/world/blob.jvm.lux
+++ b/stdlib/source/lux/world/blob.jvm.lux
@@ -30,7 +30,7 @@
(|>> host.byte-to-long (:! I64) (bit.and byte-mask)))
(def: byte
- (-> (I64 Top) (primitive "java.lang.Byte"))
+ (-> (I64 Any) (primitive "java.lang.Byte"))
(|>> .int host.long-to-byte))
(def: #export (create size)
@@ -76,7 +76,7 @@
(ex.throw index-out-of-bounds (%n idx))))
(def: #export (write-8 idx value blob)
- (-> Nat (I64 Top) Blob (e.Error Blob))
+ (-> Nat (I64 Any) Blob (e.Error Blob))
(if (n/< (host.array-length blob) idx)
(exec (|> blob
(host.array-write idx (..byte value)))
@@ -84,7 +84,7 @@
(ex.throw index-out-of-bounds (%n idx))))
(def: #export (write-16 idx value blob)
- (-> Nat (I64 Top) Blob (e.Error Blob))
+ (-> Nat (I64 Any) Blob (e.Error Blob))
(if (n/< (host.array-length blob) (n/+ +1 idx))
(exec (|> blob
(host.array-write idx (..byte (bit.logical-right-shift +8 value)))
@@ -93,7 +93,7 @@
(ex.throw index-out-of-bounds (%n idx))))
(def: #export (write-32 idx value blob)
- (-> Nat (I64 Top) Blob (e.Error Blob))
+ (-> Nat (I64 Any) Blob (e.Error Blob))
(if (n/< (host.array-length blob) (n/+ +3 idx))
(exec (|> blob
(host.array-write idx (..byte (bit.logical-right-shift +24 value)))
@@ -104,7 +104,7 @@
(ex.throw index-out-of-bounds (%n idx))))
(def: #export (write-64 idx value blob)
- (-> Nat (I64 Top) Blob (e.Error Blob))
+ (-> Nat (I64 Any) Blob (e.Error Blob))
(if (n/< (host.array-length blob) (n/+ +7 idx))
(exec (|> blob
(host.array-write idx (..byte (bit.logical-right-shift +56 value)))
diff --git a/stdlib/source/lux/world/console.lux b/stdlib/source/lux/world/console.lux
index 7e5d72790..7bd7cfaca 100644
--- a/stdlib/source/lux/world/console.lux
+++ b/stdlib/source/lux/world/console.lux
@@ -12,8 +12,8 @@
(interface: #export Console
(read-char [] (Task Text))
(read-line [] (Task Text))
- (write [Text] (Task Top))
- (close [] (Task Top)))
+ (write [Text] (Task Any))
+ (close [] (Task Any)))
(for {"JVM"
(as-is (host.import java/io/InputStream
diff --git a/stdlib/source/lux/world/file.lux b/stdlib/source/lux/world/file.lux
index 92fdd1501..78640ad58 100644
--- a/stdlib/source/lux/world/file.lux
+++ b/stdlib/source/lux/world/file.lux
@@ -53,7 +53,7 @@
(do-template [<name> <flag>]
[(def: #export (<name> data file)
- (-> Blob File (Process Top))
+ (-> Blob File (Process Any))
(do io.Monad<Process>
[stream (FileOutputStream::new [(java/io/File::new file) <flag>])
_ (OutputStream::write [data] stream)
diff --git a/stdlib/source/lux/world/net/tcp.jvm.lux b/stdlib/source/lux/world/net/tcp.jvm.lux
index a0cfbc4b6..fddd6a94e 100644
--- a/stdlib/source/lux/world/net/tcp.jvm.lux
+++ b/stdlib/source/lux/world/net/tcp.jvm.lux
@@ -50,7 +50,7 @@
(wrap (.nat bytes-read)))))
(def: #export (write data offset length self)
- (-> Blob Nat Nat TCP (Task Top))
+ (-> Blob Nat Nat TCP (Task Any))
(let [out (get@ #out (@representation self))]
(promise.future
(do io.Monad<Process>
@@ -59,7 +59,7 @@
(Flushable::flush [] out)))))
(def: #export (close self)
- (-> TCP (Task Top))
+ (-> TCP (Task Any))
(let [(^open) (@representation self)]
(promise.future
(do io.Monad<Process>
@@ -85,19 +85,19 @@
(tcp-client socket))))
(def: #export (server port)
- (-> //.Port (Task [(Promise Top)
+ (-> //.Port (Task [(Promise Any)
(frp.Channel TCP)]))
(promise.future
(do (e.ErrorT io.Monad<IO>)
[server (ServerSocket::new [(.int port)])
- #let [signal (: (Promise Top)
+ #let [signal (: (Promise Any)
(promise #.None))
_ (promise.await (function (_ _)
(AutoCloseable::close [] server))
signal)
output (: (frp.Channel TCP)
(frp.channel []))
- _ (: (Promise Top)
+ _ (: (Promise Any)
(promise.future
(loop [_ []]
(do io.Monad<IO>
diff --git a/stdlib/source/lux/world/net/udp.jvm.lux b/stdlib/source/lux/world/net/udp.jvm.lux
index da4f8f05d..5818020e6 100644
--- a/stdlib/source/lux/world/net/udp.jvm.lux
+++ b/stdlib/source/lux/world/net/udp.jvm.lux
@@ -72,7 +72,7 @@
(.nat (DatagramPacket::getPort [] packet))])))))
(def: #export (write address port data offset length self)
- (-> //.Address //.Port Blob Nat Nat UDP (T.Task Top))
+ (-> //.Address //.Port Blob Nat Nat UDP (T.Task Any))
(P.future
(do (e.ErrorT io.Monad<IO>)
[address (resolve address)
@@ -81,13 +81,13 @@
socket))))
(def: #export (close self)
- (-> UDP (T.Task Top))
+ (-> UDP (T.Task Any))
(let [(^open) (@representation self)]
(P.future
(AutoCloseable::close [] socket))))
(def: #export (client _)
- (-> Top (T.Task UDP))
+ (-> Any (T.Task UDP))
(P.future
(do (e.ErrorT io.Monad<IO>)
[socket (DatagramSocket::new|client [])]
diff --git a/stdlib/test/test/lux/concurrency/frp.lux b/stdlib/test/test/lux/concurrency/frp.lux
index 527fafb36..6de1634ec 100644
--- a/stdlib/test/test/lux/concurrency/frp.lux
+++ b/stdlib/test/test/lux/concurrency/frp.lux
@@ -11,7 +11,7 @@
lux/test)
(def: (write! values channel)
- (All [a] (-> (List a) (Channel a) (IO Top)))
+ (All [a] (-> (List a) (Channel a) (IO Any)))
(do io.Monad<IO>
[_ (monad.map @ (frp.publish channel) values)]
(wrap [])))
diff --git a/stdlib/test/test/lux/concurrency/semaphore.lux b/stdlib/test/test/lux/concurrency/semaphore.lux
index af025dbb5..b360426c5 100644
--- a/stdlib/test/test/lux/concurrency/semaphore.lux
+++ b/stdlib/test/test/lux/concurrency/semaphore.lux
@@ -13,7 +13,7 @@
lux/test)
(def: (wait-many-times times semaphore)
- (-> Nat /.Semaphore (Promise Top))
+ (-> Nat /.Semaphore (Promise Any))
(loop [steps times]
(if (n/> +0 steps)
(do promise.Monad<Promise>
@@ -44,7 +44,7 @@
true)))))
(let [semaphore (/.semaphore open-positions)]
(wrap (do promise.Monad<Promise>
- [_ (: (Promise Top)
+ [_ (: (Promise Any)
(loop [steps (n/* +2 open-positions)]
(if (n/> +0 steps)
(do @
@@ -110,7 +110,7 @@
))))
(def: (waiter resource barrier id)
- (-> (Atom Text) /.Barrier Nat (Promise Top))
+ (-> (Atom Text) /.Barrier Nat (Promise Any))
(do promise.Monad<Promise>
[_ (/.block barrier)
#let [_ (io.run (atom.update (|>> (format (%n id))) resource))]]
diff --git a/stdlib/test/test/lux/control/parser.lux b/stdlib/test/test/lux/control/parser.lux
index bc26444ce..fd1f67724 100644
--- a/stdlib/test/test/lux/control/parser.lux
+++ b/stdlib/test/test/lux/control/parser.lux
@@ -25,7 +25,7 @@
_ false))
(def: (enforced? parser input)
- (All [s] (-> (&.Parser s Top) s Bool))
+ (All [s] (-> (&.Parser s Any) s Bool))
(case (&.run input parser)
(#E.Success [_ []])
true
diff --git a/stdlib/test/test/lux/control/region.lux b/stdlib/test/test/lux/control/region.lux
index a266218f9..48b2b1b7f 100644
--- a/stdlib/test/test/lux/control/region.lux
+++ b/stdlib/test/test/lux/control/region.lux
@@ -73,7 +73,7 @@
count-clean-up (function (_ value)
(do @
[_ (thread.update inc clean-up-counter)]
- (wrap (: (Error Top) (ex.throw oops [])))))]
+ (wrap (: (Error Any) (ex.throw oops [])))))]
outcome (/.run @
(do (/.Monad<Region> @)
[_ (monad.map @ (/.acquire @@ count-clean-up)
diff --git a/stdlib/test/test/lux/lang/analysis/primitive.lux b/stdlib/test/test/lux/lang/analysis/primitive.lux
index 8e4ca6dde..6e2a8aae9 100644
--- a/stdlib/test/test/lux/lang/analysis/primitive.lux
+++ b/stdlib/test/test/lux/lang/analysis/primitive.lux
@@ -29,7 +29,7 @@
(~~ (do-template [<type> <code-wrapper> <value-gen>]
[(r.seq (r/wrap <type>) (r/map <code-wrapper> <value-gen>))]
- [Top code.tuple (r.list +0 ..unit)]
+ [Any code.tuple (r.list +0 ..unit)]
[Bool code.bool r.bool]
[Nat code.nat r.nat]
[Int code.int r.int]
@@ -58,7 +58,7 @@
(context: "Primitives"
($_ seq
(test "Can analyse unit."
- (|> (infer-primitive Top (..analyse (' [])))
+ (|> (infer-primitive Any (..analyse (' [])))
(case> (^ (#e.Success (#analysis.Primitive (#analysis.Unit output))))
(is? [] output)
diff --git a/stdlib/test/test/lux/lang/type.lux b/stdlib/test/test/lux/lang/type.lux
index be888d321..22cd568ee 100644
--- a/stdlib/test/test/lux/lang/type.lux
+++ b/stdlib/test/test/lux/lang/type.lux
@@ -102,8 +102,8 @@
(and (L/= (list) members)
(L/= (list <unit>) flat)))))]
- ["variant" &.variant &.flatten-variant Bottom]
- ["tuple" &.tuple &.flatten-tuple Top]
+ ["variant" &.variant &.flatten-variant Nothing]
+ ["tuple" &.tuple &.flatten-tuple Any]
)]
($_ seq
<struct-tests>
diff --git a/stdlib/test/test/lux/lang/type/check.lux b/stdlib/test/test/lux/lang/type/check.lux
index b384ad2ef..57285c91c 100644
--- a/stdlib/test/test/lux/lang/type/check.lux
+++ b/stdlib/test/test/lux/lang/type/check.lux
@@ -74,23 +74,23 @@
false))
## [Tests]
-(context: "Top and Bottom."
+(context: "Any and Nothing."
(<| (times +100)
(do @
[sample (|> gen-type (r.filter valid-type?))]
($_ seq
- (test "Top is the super-type of everything."
- (@.checks? Top sample))
+ (test "Any is the super-type of everything."
+ (@.checks? Any sample))
- (test "Bottom is the sub-type of everything."
- (@.checks? sample Bottom))
+ (test "Nothing is the sub-type of everything."
+ (@.checks? sample Nothing))
))))
(context: "Simple type-checking."
($_ seq
- (test "Top and Bottom match themselves."
- (and (@.checks? Bottom Bottom)
- (@.checks? Top Top)))
+ (test "Any and Nothing match themselves."
+ (and (@.checks? Nothing Nothing)
+ (@.checks? Any Any)))
(test "Existential types only match with themselves."
(and (type-checks? (do @.Monad<Check>
@@ -116,10 +116,10 @@
(#.Named ["module" "name"] exT))))))
(test "Functions are covariant on inputs and contravariant on outputs."
- (and (@.checks? (#.Function Bottom Top)
- (#.Function Top Bottom))
- (not (@.checks? (#.Function Top Bottom)
- (#.Function Bottom Top)))))
+ (and (@.checks? (#.Function Nothing Any)
+ (#.Function Any Nothing))
+ (not (@.checks? (#.Function Any Nothing)
+ (#.Function Nothing Any)))))
))
(context: "Type application."
@@ -164,10 +164,10 @@
(test "Can bind unbound type-vars by type-checking against them."
(and (type-checks? (do @.Monad<Check>
[[id var] @.var]
- (@.check var .Top)))
+ (@.check var .Any)))
(type-checks? (do @.Monad<Check>
[[id var] @.var]
- (@.check .Top var)))))
+ (@.check .Any var)))))
(test "Cannot rebind already bound type-vars."
(not (type-checks? (do @.Monad<Check>
@@ -178,13 +178,13 @@
(test "If the type bound to a var is a super-type to another, then the var is also a super-type."
(type-checks? (do @.Monad<Check>
[[id var] @.var
- _ (@.check var Top)]
+ _ (@.check var Any)]
(@.check var .Bool))))
(test "If the type bound to a var is a sub-type of another, then the var is also a sub-type."
(type-checks? (do @.Monad<Check>
[[id var] @.var
- _ (@.check var Bottom)]
+ _ (@.check var Nothing)]
(@.check .Bool var))))
))
diff --git a/stdlib/test/test/lux/type/object/interface.lux b/stdlib/test/test/lux/type/object/interface.lux
index f74d32e2a..7e2bddcdb 100644
--- a/stdlib/test/test/lux/type/object/interface.lux
+++ b/stdlib/test/test/lux/type/object/interface.lux
@@ -23,7 +23,7 @@
(class: NatRC Resettable-Counter
#super NatC
- Top
+ Any
(def: reset
(set@Counter +0)))
@@ -48,7 +48,7 @@
(class: (ListI a) (Iterable a)
#super (ListC a)
- Top
+ Any
(def: enumerate
get@Collection))
diff --git a/stdlib/test/test/lux/type/object/protocol.lux b/stdlib/test/test/lux/type/object/protocol.lux
index fcb53d3b1..58e4f6fcd 100644
--- a/stdlib/test/test/lux/type/object/protocol.lux
+++ b/stdlib/test/test/lux/type/object/protocol.lux
@@ -3,10 +3,10 @@
(lux (data text/format)
(type (object protocol))))
-(type: Counter (Object (Method Top Nat)))
+(type: Counter (Object (Method Any Nat)))
(def: (count [tick return] state)
- (Class Nat (Method Top Nat))
+ (Class Nat (Method Any Nat))
(let [state' (inc state)]
[(return state') state']))
@@ -48,20 +48,20 @@
(read [] a))
(def: (readM [tick return] state)
- (All [s] (Class s (Method Top s)))
+ (All [s] (Class s (Method Any s)))
[(return state) state])
(protocol: (Add n)
- (+ n Top)
- (- n Top))
+ (+ n Any)
+ (- n Any))
(protocol: (Mul n)
- (* n Top)
- (/ n Top))
+ (* n Any)
+ (/ n Any))
(do-template [<name> <op>]
[(def: (<name> [diff return] state)
- (Class Nat (Method Nat Top))
+ (Class Nat (Method Nat Any))
[(return []) (<op> diff state)])]
[+M n/+]
@@ -108,11 +108,11 @@
(numberO (+0 (read []))))
(def: _test3
- [Top NatO]
+ [Any NatO]
(numberO (+1 (+0 (+ +123)))))
(def: _test4
- [Top NatO]
+ [Any NatO]
(numberO (+1 (+1 (* +123)))))
## TODO: Fix when new-luxc is the official compiler.
@@ -121,9 +121,9 @@
## (numberO (^read (read []))))
## (def: _test3
-## [Top NatO]
+## [Any NatO]
## (numberO (^add (+ +123))))
## (def: _test4
-## [Top NatO]
+## [Any NatO]
## (numberO (^mul (* +123))))
diff --git a/stdlib/test/test/lux/world/blob.lux b/stdlib/test/test/lux/world/blob.lux
index e1c77552b..a74fb20e0 100644
--- a/stdlib/test/test/lux/world/blob.lux
+++ b/stdlib/test/test/lux/world/blob.lux
@@ -33,7 +33,7 @@
(:: r.Monad<Random> wrap output)))))
(def: (bits-io bytes read write value)
- (-> Nat (-> Nat /.Blob (e.Error Nat)) (-> Nat Nat /.Blob (e.Error Top)) Nat Bool)
+ (-> Nat (-> Nat /.Blob (e.Error Nat)) (-> Nat Nat /.Blob (e.Error Any)) Nat Bool)
(let [blob (/.create +8)
bits (n/* +8 bytes)
capped-value (|> +1 (bit.left-shift bits) dec (bit.and value))]