aboutsummaryrefslogtreecommitdiff
path: root/stdlib
diff options
context:
space:
mode:
authorEduardo Julian2019-04-06 21:14:27 -0400
committerEduardo Julian2019-04-06 21:14:27 -0400
commita75f032ff219fdd639580455a6d3e83fd05d5592 (patch)
treef02c8e6b9c7c8fd932790b0fc8152fa30be55d7f /stdlib
parent9a22a2616ad08d4bda9555510aa4aaeced4b69f3 (diff)
Created the "lux/abstract" branch and moved some modules into it.
Diffstat (limited to '')
-rw-r--r--stdlib/source/lux.lux6
-rw-r--r--stdlib/source/lux/abstract/algebra.lux (renamed from stdlib/source/lux/control/algebra.lux)0
-rw-r--r--stdlib/source/lux/abstract/apply.lux (renamed from stdlib/source/lux/control/apply.lux)0
-rw-r--r--stdlib/source/lux/abstract/codec.lux (renamed from stdlib/source/lux/control/codec.lux)8
-rw-r--r--stdlib/source/lux/abstract/comonad.lux (renamed from stdlib/source/lux/control/comonad.lux)0
-rw-r--r--stdlib/source/lux/abstract/enum.lux (renamed from stdlib/source/lux/control/enum.lux)6
-rw-r--r--stdlib/source/lux/abstract/equivalence.lux (renamed from stdlib/source/lux/control/equivalence.lux)6
-rw-r--r--stdlib/source/lux/abstract/fold.lux (renamed from stdlib/source/lux/control/fold.lux)0
-rw-r--r--stdlib/source/lux/abstract/functor.lux (renamed from stdlib/source/lux/control/functor.lux)0
-rw-r--r--stdlib/source/lux/abstract/hash.lux (renamed from stdlib/source/lux/control/hash.lux)0
-rw-r--r--stdlib/source/lux/abstract/interval.lux (renamed from stdlib/source/lux/control/interval.lux)10
-rw-r--r--stdlib/source/lux/abstract/monad.lux (renamed from stdlib/source/lux/control/monad.lux)2
-rw-r--r--stdlib/source/lux/abstract/monad/free.lux (renamed from stdlib/source/lux/control/monad/free.lux)0
-rw-r--r--stdlib/source/lux/abstract/monad/indexed.lux (renamed from stdlib/source/lux/control/monad/indexed.lux)0
-rw-r--r--stdlib/source/lux/abstract/monoid.lux (renamed from stdlib/source/lux/control/monoid.lux)0
-rw-r--r--stdlib/source/lux/abstract/number.lux (renamed from stdlib/source/lux/control/number.lux)0
-rw-r--r--stdlib/source/lux/abstract/order.lux (renamed from stdlib/source/lux/control/order.lux)3
-rw-r--r--stdlib/source/lux/abstract/predicate.lux (renamed from stdlib/source/lux/control/predicate.lux)16
-rw-r--r--stdlib/source/lux/cli.lux17
-rw-r--r--stdlib/source/lux/control/concatenative.lux7
-rw-r--r--stdlib/source/lux/control/concurrency/actor.lux4
-rw-r--r--stdlib/source/lux/control/concurrency/atom.lux2
-rw-r--r--stdlib/source/lux/control/concurrency/frp.lux5
-rw-r--r--stdlib/source/lux/control/concurrency/process.lux3
-rw-r--r--stdlib/source/lux/control/concurrency/promise.lux2
-rw-r--r--stdlib/source/lux/control/concurrency/semaphore.lux3
-rw-r--r--stdlib/source/lux/control/concurrency/stm.lux2
-rw-r--r--stdlib/source/lux/control/continuation.lux2
-rw-r--r--stdlib/source/lux/control/contract.lux2
-rw-r--r--stdlib/source/lux/control/exception.lux3
-rw-r--r--stdlib/source/lux/control/parser.lux14
-rw-r--r--stdlib/source/lux/control/pipe.lux3
-rw-r--r--stdlib/source/lux/control/reader.lux4
-rw-r--r--stdlib/source/lux/control/region.lux9
-rw-r--r--stdlib/source/lux/control/remember.lux3
-rw-r--r--stdlib/source/lux/control/security/capability.lux3
-rw-r--r--stdlib/source/lux/control/security/integrity.lux2
-rw-r--r--stdlib/source/lux/control/security/privacy.lux2
-rw-r--r--stdlib/source/lux/control/state.lux2
-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.lux19
-rw-r--r--stdlib/source/lux/data/collection/array.lux2
-rw-r--r--stdlib/source/lux/data/collection/bits.lux3
-rw-r--r--stdlib/source/lux/data/collection/dictionary.lux2
-rw-r--r--stdlib/source/lux/data/collection/dictionary/ordered.lux2
-rw-r--r--stdlib/source/lux/data/collection/list.lux2
-rw-r--r--stdlib/source/lux/data/collection/queue.lux2
-rw-r--r--stdlib/source/lux/data/collection/queue/priority.lux2
-rw-r--r--stdlib/source/lux/data/collection/row.lux13
-rw-r--r--stdlib/source/lux/data/collection/sequence.lux7
-rw-r--r--stdlib/source/lux/data/collection/set.lux2
-rw-r--r--stdlib/source/lux/data/collection/set/multi.lux2
-rw-r--r--stdlib/source/lux/data/collection/set/ordered.lux2
-rw-r--r--stdlib/source/lux/data/collection/stack.lux2
-rw-r--r--stdlib/source/lux/data/collection/tree/finger.lux2
-rw-r--r--stdlib/source/lux/data/collection/tree/rose.lux5
-rw-r--r--stdlib/source/lux/data/collection/tree/rose/zipper.lux2
-rw-r--r--stdlib/source/lux/data/color.lux2
-rw-r--r--stdlib/source/lux/data/env.lux2
-rw-r--r--stdlib/source/lux/data/error.lux15
-rw-r--r--stdlib/source/lux/data/format/binary.lux9
-rw-r--r--stdlib/source/lux/data/format/context.lux5
-rw-r--r--stdlib/source/lux/data/format/json.lux7
-rw-r--r--stdlib/source/lux/data/format/xml.lux5
-rw-r--r--stdlib/source/lux/data/identity.lux2
-rw-r--r--stdlib/source/lux/data/lazy.lux5
-rw-r--r--stdlib/source/lux/data/maybe.lux2
-rw-r--r--stdlib/source/lux/data/name.lux2
-rw-r--r--stdlib/source/lux/data/number.lux2
-rw-r--r--stdlib/source/lux/data/number/complex.lux5
-rw-r--r--stdlib/source/lux/data/number/frac.lux2
-rw-r--r--stdlib/source/lux/data/number/i64.lux2
-rw-r--r--stdlib/source/lux/data/number/int.lux2
-rw-r--r--stdlib/source/lux/data/number/nat.lux2
-rw-r--r--stdlib/source/lux/data/number/ratio.lux9
-rw-r--r--stdlib/source/lux/data/number/rev.lux2
-rw-r--r--stdlib/source/lux/data/store.lux2
-rw-r--r--stdlib/source/lux/data/text.lux22
-rw-r--r--stdlib/source/lux/data/text/encoding.lux2
-rw-r--r--stdlib/source/lux/data/text/format.lux3
-rw-r--r--stdlib/source/lux/data/text/lexer.lux3
-rw-r--r--stdlib/source/lux/data/text/regex.lux3
-rw-r--r--stdlib/source/lux/data/text/unicode.lux2
-rw-r--r--stdlib/source/lux/data/trace.lux2
-rw-r--r--stdlib/source/lux/function.lux7
-rw-r--r--stdlib/source/lux/host.js.lux3
-rw-r--r--stdlib/source/lux/host.jvm.lux5
-rw-r--r--stdlib/source/lux/host/jvm/attribute.lux5
-rw-r--r--stdlib/source/lux/host/jvm/class.lux5
-rw-r--r--stdlib/source/lux/host/jvm/constant.lux5
-rw-r--r--stdlib/source/lux/host/jvm/constant/pool.lux5
-rw-r--r--stdlib/source/lux/host/jvm/constant/tag.lux2
-rw-r--r--stdlib/source/lux/host/jvm/encoding.lux3
-rw-r--r--stdlib/source/lux/host/jvm/field.lux5
-rw-r--r--stdlib/source/lux/host/jvm/index.lux2
-rw-r--r--stdlib/source/lux/host/jvm/loader.jvm.lux3
-rw-r--r--stdlib/source/lux/host/jvm/method.lux5
-rw-r--r--stdlib/source/lux/host/jvm/modifier.lux5
-rw-r--r--stdlib/source/lux/host/jvm/modifier/inner.lux5
-rw-r--r--stdlib/source/lux/io.lux2
-rw-r--r--stdlib/source/lux/locale.lux2
-rw-r--r--stdlib/source/lux/locale/language.lux2
-rw-r--r--stdlib/source/lux/locale/territory.lux2
-rw-r--r--stdlib/source/lux/macro.lux2
-rw-r--r--stdlib/source/lux/macro/code.lux2
-rw-r--r--stdlib/source/lux/macro/poly.lux5
-rw-r--r--stdlib/source/lux/macro/poly/equivalence.lux15
-rw-r--r--stdlib/source/lux/macro/poly/functor.lux5
-rw-r--r--stdlib/source/lux/macro/poly/json.lux5
-rw-r--r--stdlib/source/lux/macro/syntax.lux5
-rw-r--r--stdlib/source/lux/macro/syntax/common/reader.lux3
-rw-r--r--stdlib/source/lux/macro/template.lux3
-rw-r--r--stdlib/source/lux/math/infix.lux3
-rw-r--r--stdlib/source/lux/math/logic/fuzzy.lux2
-rw-r--r--stdlib/source/lux/math/modular.lux7
-rw-r--r--stdlib/source/lux/math/random.lux2
-rw-r--r--stdlib/source/lux/test.lux3
-rw-r--r--stdlib/source/lux/time/date.lux5
-rw-r--r--stdlib/source/lux/time/day.lux2
-rw-r--r--stdlib/source/lux/time/duration.lux5
-rw-r--r--stdlib/source/lux/time/instant.lux5
-rw-r--r--stdlib/source/lux/time/month.lux2
-rw-r--r--stdlib/source/lux/tool/compiler/analysis.lux2
-rw-r--r--stdlib/source/lux/tool/compiler/meta/archive.lux5
-rw-r--r--stdlib/source/lux/tool/compiler/meta/archive/signature.lux2
-rw-r--r--stdlib/source/lux/tool/compiler/phase.lux5
-rw-r--r--stdlib/source/lux/tool/compiler/phase/extension.lux3
-rw-r--r--stdlib/source/lux/tool/compiler/phase/extension/bundle.lux2
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation.lux3
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/extension.lux2
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/js.lux2
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/js/case.lux3
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/js/extension/common.lux2
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/js/extension/host.lux2
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/js/function.lux3
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/js/loop.lux2
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/js/runtime.lux3
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/js/structure.lux2
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/python.lux2
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/python/case.lux3
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/python/extension/common.lux2
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/python/extension/host.lux2
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/python/function.lux3
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/python/loop.lux2
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/python/runtime.lux3
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/python/structure.lux2
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/scheme.lux2
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/scheme/case.jvm.lux9
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/scheme/extension/common.jvm.lux3
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/scheme/function.jvm.lux3
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/scheme/loop.jvm.lux2
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/scheme/runtime.jvm.lux5
-rw-r--r--stdlib/source/lux/tool/compiler/phase/generation/scheme/structure.jvm.lux2
-rw-r--r--stdlib/source/lux/tool/compiler/phase/synthesis/case.lux5
-rw-r--r--stdlib/source/lux/tool/compiler/phase/synthesis/function.lux3
-rw-r--r--stdlib/source/lux/tool/compiler/phase/synthesis/loop.lux3
-rw-r--r--stdlib/source/lux/tool/compiler/reference.lux5
-rw-r--r--stdlib/source/lux/tool/compiler/synthesis.lux5
-rw-r--r--stdlib/source/lux/type.lux5
-rw-r--r--stdlib/source/lux/type/abstract.lux3
-rw-r--r--stdlib/source/lux/type/check.lux5
-rw-r--r--stdlib/source/lux/type/implicit.lux5
-rw-r--r--stdlib/source/lux/type/refinement.lux2
-rw-r--r--stdlib/source/lux/type/resource.lux5
-rw-r--r--stdlib/source/lux/type/unit.lux5
-rw-r--r--stdlib/source/lux/world/binary.lux5
-rw-r--r--stdlib/source/lux/world/file.lux3
-rw-r--r--stdlib/source/lux/world/net/tcp.jvm.lux3
-rw-r--r--stdlib/source/lux/world/net/udp.jvm.lux3
-rw-r--r--stdlib/source/program/licentia.lux3
-rw-r--r--stdlib/source/program/scriptum.lux3
-rw-r--r--stdlib/source/test/licentia.lux3
-rw-r--r--stdlib/source/test/lux.lux5
-rw-r--r--stdlib/source/test/lux/abstract.lux11
-rw-r--r--stdlib/source/test/lux/abstract/apply.lux (renamed from stdlib/source/test/lux/control/apply.lux)3
-rw-r--r--stdlib/source/test/lux/abstract/codec.lux (renamed from stdlib/source/test/lux/control/codec.lux)3
-rw-r--r--stdlib/source/test/lux/abstract/enum.lux (renamed from stdlib/source/test/lux/control/enum.lux)3
-rw-r--r--stdlib/source/test/lux/abstract/equivalence.lux (renamed from stdlib/source/test/lux/control/equivalence.lux)3
-rw-r--r--stdlib/source/test/lux/abstract/fold.lux (renamed from stdlib/source/test/lux/control/fold.lux)3
-rw-r--r--stdlib/source/test/lux/abstract/functor.lux (renamed from stdlib/source/test/lux/control/functor.lux)2
-rw-r--r--stdlib/source/test/lux/abstract/interval.lux (renamed from stdlib/source/test/lux/control/interval.lux)15
-rw-r--r--stdlib/source/test/lux/abstract/monad.lux (renamed from stdlib/source/test/lux/control/monad.lux)0
-rw-r--r--stdlib/source/test/lux/abstract/monoid.lux (renamed from stdlib/source/test/lux/control/monoid.lux)3
-rw-r--r--stdlib/source/test/lux/abstract/number.lux (renamed from stdlib/source/test/lux/control/number.lux)3
-rw-r--r--stdlib/source/test/lux/abstract/order.lux (renamed from stdlib/source/test/lux/control/order.lux)3
-rw-r--r--stdlib/source/test/lux/cli.lux2
-rw-r--r--stdlib/source/test/lux/control.lux2
-rw-r--r--stdlib/source/test/lux/control/concurrency/actor.lux2
-rw-r--r--stdlib/source/test/lux/control/concurrency/atom.lux3
-rw-r--r--stdlib/source/test/lux/control/concurrency/frp.lux2
-rw-r--r--stdlib/source/test/lux/control/concurrency/promise.lux2
-rw-r--r--stdlib/source/test/lux/control/concurrency/semaphore.lux3
-rw-r--r--stdlib/source/test/lux/control/concurrency/stm.lux2
-rw-r--r--stdlib/source/test/lux/control/continuation.lux2
-rw-r--r--stdlib/source/test/lux/control/exception.lux3
-rw-r--r--stdlib/source/test/lux/control/parser.lux2
-rw-r--r--stdlib/source/test/lux/control/pipe.lux2
-rw-r--r--stdlib/source/test/lux/control/reader.lux2
-rw-r--r--stdlib/source/test/lux/control/region.lux3
-rw-r--r--stdlib/source/test/lux/control/security/integrity.lux2
-rw-r--r--stdlib/source/test/lux/control/security/privacy.lux7
-rw-r--r--stdlib/source/test/lux/control/state.lux5
-rw-r--r--stdlib/source/test/lux/control/thread.lux2
-rw-r--r--stdlib/source/test/lux/control/writer.lux2
-rw-r--r--stdlib/source/test/lux/data/bit.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/array.lux5
-rw-r--r--stdlib/source/test/lux/data/collection/bits.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/dictionary.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/dictionary/ordered.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/list.lux5
-rw-r--r--stdlib/source/test/lux/data/collection/queue.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/queue/priority.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/row.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/sequence.lux4
-rw-r--r--stdlib/source/test/lux/data/collection/set.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/set/ordered.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/stack.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/tree/rose.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/tree/rose/zipper.lux2
-rw-r--r--stdlib/source/test/lux/data/color.lux2
-rw-r--r--stdlib/source/test/lux/data/error.lux5
-rw-r--r--stdlib/source/test/lux/data/format/json.lux7
-rw-r--r--stdlib/source/test/lux/data/format/xml.lux7
-rw-r--r--stdlib/source/test/lux/data/identity.lux2
-rw-r--r--stdlib/source/test/lux/data/lazy.lux2
-rw-r--r--stdlib/source/test/lux/data/maybe.lux5
-rw-r--r--stdlib/source/test/lux/data/name.lux5
-rw-r--r--stdlib/source/test/lux/data/number/complex.lux2
-rw-r--r--stdlib/source/test/lux/data/number/frac.lux2
-rw-r--r--stdlib/source/test/lux/data/number/i64.lux2
-rw-r--r--stdlib/source/test/lux/data/number/int.lux2
-rw-r--r--stdlib/source/test/lux/data/number/nat.lux2
-rw-r--r--stdlib/source/test/lux/data/number/ratio.lux2
-rw-r--r--stdlib/source/test/lux/data/number/rev.lux2
-rw-r--r--stdlib/source/test/lux/data/text.lux5
-rw-r--r--stdlib/source/test/lux/data/text/lexer.lux2
-rw-r--r--stdlib/source/test/lux/data/text/regex.lux2
-rw-r--r--stdlib/source/test/lux/host.jvm.lux2
-rw-r--r--stdlib/source/test/lux/host/jvm.jvm.lux2
-rw-r--r--stdlib/source/test/lux/io.lux2
-rw-r--r--stdlib/source/test/lux/macro.lux2
-rw-r--r--stdlib/source/test/lux/macro/code.lux2
-rw-r--r--stdlib/source/test/lux/macro/poly/equivalence.lux4
-rw-r--r--stdlib/source/test/lux/macro/poly/functor.lux2
-rw-r--r--stdlib/source/test/lux/macro/poly/json.lux7
-rw-r--r--stdlib/source/test/lux/macro/syntax.lux5
-rw-r--r--stdlib/source/test/lux/math.lux3
-rw-r--r--stdlib/source/test/lux/math/infix.lux2
-rw-r--r--stdlib/source/test/lux/math/logic/continuous.lux2
-rw-r--r--stdlib/source/test/lux/math/logic/fuzzy.lux2
-rw-r--r--stdlib/source/test/lux/math/modular.lux2
-rw-r--r--stdlib/source/test/lux/time/date.lux3
-rw-r--r--stdlib/source/test/lux/time/day.lux2
-rw-r--r--stdlib/source/test/lux/time/duration.lux2
-rw-r--r--stdlib/source/test/lux/time/instant.lux5
-rw-r--r--stdlib/source/test/lux/time/month.lux2
-rw-r--r--stdlib/source/test/lux/type.lux2
-rw-r--r--stdlib/source/test/lux/type/check.lux3
-rw-r--r--stdlib/source/test/lux/type/dynamic.lux2
-rw-r--r--stdlib/source/test/lux/type/implicit.lux4
-rw-r--r--stdlib/source/test/lux/type/resource.lux2
-rw-r--r--stdlib/source/test/lux/world/binary.lux3
-rw-r--r--stdlib/source/test/lux/world/file.lux2
-rw-r--r--stdlib/source/test/lux/world/net/tcp.lux2
-rw-r--r--stdlib/source/test/lux/world/net/udp.lux2
266 files changed, 531 insertions, 410 deletions
diff --git a/stdlib/source/lux.lux b/stdlib/source/lux.lux
index 45b190c82..1a3d71480 100644
--- a/stdlib/source/lux.lux
+++ b/stdlib/source/lux.lux
@@ -3958,7 +3958,7 @@
#None
(fail "Wrong syntax for structure:"))))
-(def: (identity x) (All [a] (-> a a)) x)
+(def: (function@identity x) (All [a] (-> a a)) x)
(macro: #export (type: tokens)
{#.doc (text$ ($_ "lux text concat"
@@ -5289,8 +5289,8 @@
<open>
parts-text
<close>)]))
- ([#Form "(" ")" ..identity]
- [#Tuple "[" "]" ..identity]
+ ([#Form "(" ")" ..function@identity]
+ [#Tuple "[" "]" ..function@identity]
[#Record "{" "}" rejoin-all-pairs])
[new-cursor (#Rev value)]
diff --git a/stdlib/source/lux/control/algebra.lux b/stdlib/source/lux/abstract/algebra.lux
index 2813ed0e7..2813ed0e7 100644
--- a/stdlib/source/lux/control/algebra.lux
+++ b/stdlib/source/lux/abstract/algebra.lux
diff --git a/stdlib/source/lux/control/apply.lux b/stdlib/source/lux/abstract/apply.lux
index 5eb42b63d..5eb42b63d 100644
--- a/stdlib/source/lux/control/apply.lux
+++ b/stdlib/source/lux/abstract/apply.lux
diff --git a/stdlib/source/lux/control/codec.lux b/stdlib/source/lux/abstract/codec.lux
index b51f76d97..abe80ba4a 100644
--- a/stdlib/source/lux/control/codec.lux
+++ b/stdlib/source/lux/abstract/codec.lux
@@ -1,11 +1,10 @@
(.module:
[lux #*
- [control
- monad]
[data
- ["." error (#+ Error)]]])
+ ["." error (#+ Error)]]]
+ [//
+ monad])
-## [Signatures]
(signature: #export (Codec m a)
{#.doc "A way to move back-and-forth between a type and an alternative representation for it."}
(: (-> a m)
@@ -13,7 +12,6 @@
(: (-> m (Error a))
decode))
-## [Values]
(structure: #export (compose cb-codec ba-codec)
{#.doc "Codec composition."}
(All [a b c]
diff --git a/stdlib/source/lux/control/comonad.lux b/stdlib/source/lux/abstract/comonad.lux
index 1d6ac49e5..1d6ac49e5 100644
--- a/stdlib/source/lux/control/comonad.lux
+++ b/stdlib/source/lux/abstract/comonad.lux
diff --git a/stdlib/source/lux/control/enum.lux b/stdlib/source/lux/abstract/enum.lux
index 9f2845b01..5bbb7df38 100644
--- a/stdlib/source/lux/control/enum.lux
+++ b/stdlib/source/lux/abstract/enum.lux
@@ -1,7 +1,7 @@
(.module:
- [lux #*
- [control
- ["." order]]])
+ [lux #*]
+ [//
+ ["." order]])
(signature: #export (Enum e)
{#.doc "Enumerable types, with a notion of moving forward and backwards through a type's instances."}
diff --git a/stdlib/source/lux/control/equivalence.lux b/stdlib/source/lux/abstract/equivalence.lux
index 57db7a925..b773505de 100644
--- a/stdlib/source/lux/control/equivalence.lux
+++ b/stdlib/source/lux/abstract/equivalence.lux
@@ -1,7 +1,7 @@
(.module:
- [lux #*
- [control
- [functor (#+ Contravariant)]]])
+ [lux #*]
+ [//
+ [functor (#+ Contravariant)]])
(signature: #export (Equivalence a)
{#.doc "Equivalence for a type's instances."}
diff --git a/stdlib/source/lux/control/fold.lux b/stdlib/source/lux/abstract/fold.lux
index 504f41f58..504f41f58 100644
--- a/stdlib/source/lux/control/fold.lux
+++ b/stdlib/source/lux/abstract/fold.lux
diff --git a/stdlib/source/lux/control/functor.lux b/stdlib/source/lux/abstract/functor.lux
index 1ade0a45b..1ade0a45b 100644
--- a/stdlib/source/lux/control/functor.lux
+++ b/stdlib/source/lux/abstract/functor.lux
diff --git a/stdlib/source/lux/control/hash.lux b/stdlib/source/lux/abstract/hash.lux
index d2dee3bcb..d2dee3bcb 100644
--- a/stdlib/source/lux/control/hash.lux
+++ b/stdlib/source/lux/abstract/hash.lux
diff --git a/stdlib/source/lux/control/interval.lux b/stdlib/source/lux/abstract/interval.lux
index 046f5b77d..efb131843 100644
--- a/stdlib/source/lux/control/interval.lux
+++ b/stdlib/source/lux/abstract/interval.lux
@@ -1,9 +1,9 @@
(.module:
- [lux #*
- [control
- [equivalence (#+ Equivalence)]
- ["." order]
- [enum (#+ Enum)]]])
+ [lux #*]
+ [//
+ [equivalence (#+ Equivalence)]
+ ["." order]
+ [enum (#+ Enum)]])
(signature: #export (Interval a)
{#.doc "A representation of top and bottom boundaries for an ordered type."}
diff --git a/stdlib/source/lux/control/monad.lux b/stdlib/source/lux/abstract/monad.lux
index 513f55b1e..0e509c64e 100644
--- a/stdlib/source/lux/control/monad.lux
+++ b/stdlib/source/lux/abstract/monad.lux
@@ -1,5 +1,5 @@
(.module:
- lux
+ [lux #*]
[//
["." functor (#+ Functor)]])
diff --git a/stdlib/source/lux/control/monad/free.lux b/stdlib/source/lux/abstract/monad/free.lux
index 214261450..214261450 100644
--- a/stdlib/source/lux/control/monad/free.lux
+++ b/stdlib/source/lux/abstract/monad/free.lux
diff --git a/stdlib/source/lux/control/monad/indexed.lux b/stdlib/source/lux/abstract/monad/indexed.lux
index 57a18c109..57a18c109 100644
--- a/stdlib/source/lux/control/monad/indexed.lux
+++ b/stdlib/source/lux/abstract/monad/indexed.lux
diff --git a/stdlib/source/lux/control/monoid.lux b/stdlib/source/lux/abstract/monoid.lux
index 33d082020..33d082020 100644
--- a/stdlib/source/lux/control/monoid.lux
+++ b/stdlib/source/lux/abstract/monoid.lux
diff --git a/stdlib/source/lux/control/number.lux b/stdlib/source/lux/abstract/number.lux
index b3a314ba5..b3a314ba5 100644
--- a/stdlib/source/lux/control/number.lux
+++ b/stdlib/source/lux/abstract/number.lux
diff --git a/stdlib/source/lux/control/order.lux b/stdlib/source/lux/abstract/order.lux
index 68573b326..85b33fa18 100644
--- a/stdlib/source/lux/control/order.lux
+++ b/stdlib/source/lux/abstract/order.lux
@@ -1,9 +1,8 @@
(.module:
[lux #*
- [control
- [functor (#+ Contravariant)]]
function]
[//
+ [functor (#+ Contravariant)]
["." equivalence (#+ Equivalence)]])
(`` (signature: #export (Order a)
diff --git a/stdlib/source/lux/control/predicate.lux b/stdlib/source/lux/abstract/predicate.lux
index 7d6433f33..faa1859b9 100644
--- a/stdlib/source/lux/control/predicate.lux
+++ b/stdlib/source/lux/abstract/predicate.lux
@@ -1,9 +1,9 @@
(.module:
[lux #*
- [control
- [monoid (#+ Monoid)]
- [functor (#+ Contravariant)]]
- ["." function]])
+ ["." function]]
+ [//
+ [monoid (#+ Monoid)]
+ [functor (#+ Contravariant)]])
(type: #export (Predicate a)
(-> a Bit))
@@ -24,7 +24,9 @@
)
(template [<name> <identity> <composition>]
- [(structure: #export <name> (All [a] (Monoid (Predicate a)))
+ [(structure: #export <name>
+ (All [a] (Monoid (Predicate a)))
+
(def: identity <identity>)
(def: compose <composition>))]
@@ -48,6 +50,8 @@
(Predicate a)))
(|>> (predicate (rec predicate))))
-(structure: #export _ (Contravariant Predicate)
+(structure: #export _
+ (Contravariant Predicate)
+
(def: (map-1 f fb)
(|>> f fb)))
diff --git a/stdlib/source/lux/cli.lux b/stdlib/source/lux/cli.lux
index 34f4fa31c..2ee55a9b5 100644
--- a/stdlib/source/lux/cli.lux
+++ b/stdlib/source/lux/cli.lux
@@ -1,19 +1,20 @@
(.module:
[lux #*
+ [abstract
+ [monad (#+ do)]]
[control
- monad
["p" parser (#+ Parser)]
[concurrency
["." process]]]
[data
[collection
- ["." list ("#;." monoid monad)]]
- ["." text ("#;." equivalence)
+ ["." list ("#@." monoid monad)]]
+ ["." text ("#@." equivalence)
format]
["." error (#+ Error)]]
[macro (#+ with-gensyms)
["." code]
- ["s" syntax (#+ syntax: Syntax)]]
+ ["s" syntax (#+ Syntax syntax:)]]
[tool
[compiler
["." host]]]
@@ -63,7 +64,7 @@
(function (_ inputs)
(do error.monad
[[remaining raw] (any inputs)]
- (if (text;= reference raw)
+ (if (text@= reference raw)
(wrap [remaining []])
(error.fail (format "Missing token: '" reference "'"))))))
@@ -131,7 +132,7 @@
(wrap [])))
(program: [name]
- (io (log! (text;compose "Hello, " name))))
+ (io (log! (text@compose "Hello, " name))))
(program: [{config config^}]
(do io.monad
@@ -153,9 +154,9 @@
(case ((: (~! (..CLI (io.IO .Any)))
((~! do) (~! p.monad)
[(~+ (|> args
- (list;map (function (_ [binding parser])
+ (list@map (function (_ [binding parser])
(list binding parser)))
- list;join))
+ list@join))
(~ g!_) ..end]
((~' wrap) ((~! do) (~! io.monad)
[(~ g!output) (~ body)
diff --git a/stdlib/source/lux/control/concatenative.lux b/stdlib/source/lux/control/concatenative.lux
index 2ec99fe8f..9a20132fd 100644
--- a/stdlib/source/lux/control/concatenative.lux
+++ b/stdlib/source/lux/control/concatenative.lux
@@ -4,8 +4,7 @@
i/+ i/- i/* i// i/% i/= i/< i/<= i/> i/>=
r/+ r/- r/* r// r/% r/= r/< r/<= r/> r/>=
f/+ f/- f/* f// f/% f/= f/< f/<= f/> f/>=)
- [control
- ["p" parser ("#;." monad)]
+ [abstract
["." monad]]
[data
["." text
@@ -19,7 +18,9 @@
[syntax
["cs" common
["csr" reader]
- ["csw" writer]]]]])
+ ["csw" writer]]]]]
+ [//
+ ["p" parser ("#;." monad)]])
## [Syntax]
(type: Alias [Text Code])
diff --git a/stdlib/source/lux/control/concurrency/actor.lux b/stdlib/source/lux/control/concurrency/actor.lux
index 133144a83..3384b7b66 100644
--- a/stdlib/source/lux/control/concurrency/actor.lux
+++ b/stdlib/source/lux/control/concurrency/actor.lux
@@ -1,7 +1,9 @@
(.module: {#.doc "The actor model of concurrency."}
[lux #*
["." function]
- [control monad
+ [abstract
+ monad]
+ [control
["p" parser]
["ex" exception (#+ exception:)]]
["." io (#+ IO io) ("#;." monad)]
diff --git a/stdlib/source/lux/control/concurrency/atom.lux b/stdlib/source/lux/control/concurrency/atom.lux
index a8fd975b2..6b88a0a4a 100644
--- a/stdlib/source/lux/control/concurrency/atom.lux
+++ b/stdlib/source/lux/control/concurrency/atom.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[monad (#+ do)]]
["." function]
["." io (#- run)]
diff --git a/stdlib/source/lux/control/concurrency/frp.lux b/stdlib/source/lux/control/concurrency/frp.lux
index 907ffa97d..74212594f 100644
--- a/stdlib/source/lux/control/concurrency/frp.lux
+++ b/stdlib/source/lux/control/concurrency/frp.lux
@@ -1,12 +1,13 @@
(.module:
[lux #*
["." io (#+ IO io)]
- [control
+ [abstract
[predicate (#+ Predicate)]
[equivalence (#+ Equivalence)]
[functor (#+ Functor)]
[apply (#+ Apply)]
- ["." monad (#+ Monad do)]
+ ["." monad (#+ Monad do)]]
+ [control
["ex" exception (#+ exception:)]]
[data
["." maybe ("#@." functor)]
diff --git a/stdlib/source/lux/control/concurrency/process.lux b/stdlib/source/lux/control/concurrency/process.lux
index 018659ba1..96963a7f2 100644
--- a/stdlib/source/lux/control/concurrency/process.lux
+++ b/stdlib/source/lux/control/concurrency/process.lux
@@ -1,7 +1,8 @@
(.module:
[lux #*
+ [abstract
+ ["." monad (#+ do)]]
[control
- ["." monad (#+ do)]
["ex" exception (#+ exception:)]]
[data
[collection
diff --git a/stdlib/source/lux/control/concurrency/promise.lux b/stdlib/source/lux/control/concurrency/promise.lux
index fa8acc6d9..63f506c37 100644
--- a/stdlib/source/lux/control/concurrency/promise.lux
+++ b/stdlib/source/lux/control/concurrency/promise.lux
@@ -1,6 +1,6 @@
(.module:
[lux (#- and or)
- [control
+ [abstract
[functor (#+ Functor)]
[apply (#+ Apply)]
["." monad (#+ Monad do)]]
diff --git a/stdlib/source/lux/control/concurrency/semaphore.lux b/stdlib/source/lux/control/concurrency/semaphore.lux
index 2bc5be651..1159e41e6 100644
--- a/stdlib/source/lux/control/concurrency/semaphore.lux
+++ b/stdlib/source/lux/control/concurrency/semaphore.lux
@@ -1,6 +1,7 @@
(.module:
[lux #*
- [control [monad (#+ do)]]
+ [abstract
+ [monad (#+ do)]]
["." io (#+ IO)]
[type
abstract
diff --git a/stdlib/source/lux/control/concurrency/stm.lux b/stdlib/source/lux/control/concurrency/stm.lux
index 1bc69f5e2..fce9cbd82 100644
--- a/stdlib/source/lux/control/concurrency/stm.lux
+++ b/stdlib/source/lux/control/concurrency/stm.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[functor (#+ Functor)]
[apply (#+ Apply)]
["." monad (#+ do Monad)]]
diff --git a/stdlib/source/lux/control/continuation.lux b/stdlib/source/lux/control/continuation.lux
index 7a1fd7be8..e960e1fd3 100644
--- a/stdlib/source/lux/control/continuation.lux
+++ b/stdlib/source/lux/control/continuation.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[functor (#+ Functor)]
[apply (#+ Apply)]
[monad (#+ Monad do)]]
diff --git a/stdlib/source/lux/control/contract.lux b/stdlib/source/lux/control/contract.lux
index 065829f44..1add3be8f 100644
--- a/stdlib/source/lux/control/contract.lux
+++ b/stdlib/source/lux/control/contract.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
monad]
[data
[text
diff --git a/stdlib/source/lux/control/exception.lux b/stdlib/source/lux/control/exception.lux
index 71cfa3414..4472b047c 100644
--- a/stdlib/source/lux/control/exception.lux
+++ b/stdlib/source/lux/control/exception.lux
@@ -1,7 +1,8 @@
(.module: {#.doc "Exception-handling functionality built on top of the Error type."}
[lux #*
+ [abstract
+ [monad (#+ do)]]
[control
- [monad (#+ do)]
["p" parser]]
[data
["//" error (#+ Error)]
diff --git a/stdlib/source/lux/control/parser.lux b/stdlib/source/lux/control/parser.lux
index 035576cab..84f63c548 100644
--- a/stdlib/source/lux/control/parser.lux
+++ b/stdlib/source/lux/control/parser.lux
@@ -1,6 +1,6 @@
(.module:
[lux (#- or and not)
- [control
+ [abstract
[functor (#+ Functor)]
[apply (#+ Apply)]
[monad (#+ Monad do)]
@@ -15,7 +15,9 @@
{#.doc "A generic parser."}
(-> s (Error [s a])))
-(structure: #export functor (All [s] (Functor (Parser s)))
+(structure: #export functor
+ (All [s] (Functor (Parser s)))
+
(def: (map f ma)
(function (_ input)
(case (ma input)
@@ -25,7 +27,9 @@
(#error.Success [input' a])
(#error.Success [input' (f a)])))))
-(structure: #export apply (All [s] (Apply (Parser s)))
+(structure: #export apply
+ (All [s] (Apply (Parser s)))
+
(def: &functor ..functor)
(def: (apply ff fa)
@@ -42,7 +46,9 @@
(#error.Failure msg)
(#error.Failure msg)))))
-(structure: #export monad (All [s] (Monad (Parser s)))
+(structure: #export monad
+ (All [s] (Monad (Parser s)))
+
(def: &functor ..functor)
(def: (wrap x)
diff --git a/stdlib/source/lux/control/pipe.lux b/stdlib/source/lux/control/pipe.lux
index 8700217e2..b6381e7a6 100644
--- a/stdlib/source/lux/control/pipe.lux
+++ b/stdlib/source/lux/control/pipe.lux
@@ -1,7 +1,8 @@
(.module: {#.doc "Composable extensions to the piping macros (|> and <|) that enhance them with various abilities."}
[lux #*
+ [abstract
+ [monad (#+ do)]]
[control
- [monad (#+ do)]
["p" parser]]
[data
["e" error]
diff --git a/stdlib/source/lux/control/reader.lux b/stdlib/source/lux/control/reader.lux
index 01b139b82..9236fb5a5 100644
--- a/stdlib/source/lux/control/reader.lux
+++ b/stdlib/source/lux/control/reader.lux
@@ -1,9 +1,9 @@
(.module:
[lux #*
- [control
+ [abstract
["." functor (#+ Functor)]
[apply (#+ Apply)]
- ["." monad (#+ do Monad)]]])
+ ["." monad (#+ Monad do)]]])
(type: #export (Reader r a)
{#.doc "Computations that have access to some environmental value."}
diff --git a/stdlib/source/lux/control/region.lux b/stdlib/source/lux/control/region.lux
index 596b1a0d4..0671e1c08 100644
--- a/stdlib/source/lux/control/region.lux
+++ b/stdlib/source/lux/control/region.lux
@@ -1,16 +1,17 @@
(.module:
[lux #*
- [control
+ [abstract
[functor (#+ Functor)]
[apply (#+ Apply)]
- ["." monad (#+ Monad do)]
- ["ex" exception (#+ Exception exception:)]]
+ ["." monad (#+ Monad do)]]
[data
["." error (#+ Error)]
["." text
format]
[collection
- ["." list ("#;." fold)]]]])
+ ["." list ("#;." fold)]]]]
+ [//
+ ["ex" exception (#+ Exception exception:)]])
(type: (Cleaner r m)
(-> r (m (Error Any))))
diff --git a/stdlib/source/lux/control/remember.lux b/stdlib/source/lux/control/remember.lux
index 34bb38001..6d21a1948 100644
--- a/stdlib/source/lux/control/remember.lux
+++ b/stdlib/source/lux/control/remember.lux
@@ -1,7 +1,8 @@
(.module:
[lux #*
+ [abstract
+ [monad (#+ do)]]
[control
- [monad (#+ do)]
["p" parser ("#@." functor)]
["ex" exception (#+ exception:)]]
[data
diff --git a/stdlib/source/lux/control/security/capability.lux b/stdlib/source/lux/control/security/capability.lux
index 595c573d5..4684c8bdf 100644
--- a/stdlib/source/lux/control/security/capability.lux
+++ b/stdlib/source/lux/control/security/capability.lux
@@ -1,8 +1,9 @@
(.module:
[lux #*
["." io (#+ IO)]
+ [abstract
+ [monad (#+ do)]]
[control
- [monad (#+ do)]
["p" parser]
[concurrency
["." promise (#+ Promise)]]]
diff --git a/stdlib/source/lux/control/security/integrity.lux b/stdlib/source/lux/control/security/integrity.lux
index 81dee0c16..625f3c431 100644
--- a/stdlib/source/lux/control/security/integrity.lux
+++ b/stdlib/source/lux/control/security/integrity.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[functor (#+ Functor)]
[apply (#+ Apply)]
[monad (#+ Monad)]]
diff --git a/stdlib/source/lux/control/security/privacy.lux b/stdlib/source/lux/control/security/privacy.lux
index fe6a70233..4a54947b1 100644
--- a/stdlib/source/lux/control/security/privacy.lux
+++ b/stdlib/source/lux/control/security/privacy.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[functor (#+ Functor)]
[apply (#+ Apply)]
[monad (#+ Monad)]]
diff --git a/stdlib/source/lux/control/state.lux b/stdlib/source/lux/control/state.lux
index fc017f177..b4e958c6b 100644
--- a/stdlib/source/lux/control/state.lux
+++ b/stdlib/source/lux/control/state.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[functor (#+ Functor)]
[apply (#+ Apply)]
[monad (#+ Monad do)]]])
diff --git a/stdlib/source/lux/control/thread.lux b/stdlib/source/lux/control/thread.lux
index c4625d6f5..e74dc1eb5 100644
--- a/stdlib/source/lux/control/thread.lux
+++ b/stdlib/source/lux/control/thread.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[functor (#+ Functor)]
[apply (#+ Apply)]
[monad (#+ Monad do)]]
diff --git a/stdlib/source/lux/control/writer.lux b/stdlib/source/lux/control/writer.lux
index 278fc9236..bbca0faa0 100644
--- a/stdlib/source/lux/control/writer.lux
+++ b/stdlib/source/lux/control/writer.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
monoid
["." functor (#+ Functor)]
[apply (#+ Apply)]
diff --git a/stdlib/source/lux/data/bit.lux b/stdlib/source/lux/data/bit.lux
index 72cfc096e..8c1b1d1b3 100644
--- a/stdlib/source/lux/data/bit.lux
+++ b/stdlib/source/lux/data/bit.lux
@@ -1,27 +1,34 @@
(.module:
[lux #*
- [control
+ [abstract
[monoid (#+ Monoid)]
[equivalence (#+ Equivalence)]
hash
[codec (#+ Codec)]]
- function])
+ ["." function]])
-(structure: #export equivalence (Equivalence Bit)
+(structure: #export equivalence
+ (Equivalence Bit)
+
(def: (= x y)
(if x
y
(not y))))
-(structure: #export hash (Hash Bit)
+(structure: #export hash
+ (Hash Bit)
+
(def: &equivalence ..equivalence)
+
(def: (hash value)
(case value
#1 1
#0 0)))
(template [<name> <identity> <op>]
- [(structure: #export <name> (Monoid Bit)
+ [(structure: #export <name>
+ (Monoid Bit)
+
(def: identity <identity>)
(def: (compose x y) (<op> x y)))]
@@ -45,4 +52,4 @@
{#.doc (doc "Generates the complement of a predicate."
"That is a predicate that returns the oposite of the original predicate.")}
(All [a] (-> (-> a Bit) (-> a Bit)))
- (compose not))
+ (function.compose not))
diff --git a/stdlib/source/lux/data/collection/array.lux b/stdlib/source/lux/data/collection/array.lux
index 55e0ceb2b..946b6a3b4 100644
--- a/stdlib/source/lux/data/collection/array.lux
+++ b/stdlib/source/lux/data/collection/array.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[monoid (#+ Monoid)]
[functor (#+ Functor)]
[equivalence (#+ Equivalence)]
diff --git a/stdlib/source/lux/data/collection/bits.lux b/stdlib/source/lux/data/collection/bits.lux
index 95732fe15..0e5f7a16e 100644
--- a/stdlib/source/lux/data/collection/bits.lux
+++ b/stdlib/source/lux/data/collection/bits.lux
@@ -1,7 +1,8 @@
(.module:
[lux (#- not and or)
+ [abstract
+ [equivalence (#+ Equivalence)]]
[control
- [equivalence (#+ Equivalence)]
pipe]
[data
["." maybe]
diff --git a/stdlib/source/lux/data/collection/dictionary.lux b/stdlib/source/lux/data/collection/dictionary.lux
index a9c53ea18..3580b0ddd 100644
--- a/stdlib/source/lux/data/collection/dictionary.lux
+++ b/stdlib/source/lux/data/collection/dictionary.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[hash (#+ Hash)]
[equivalence (#+ Equivalence)]
[functor (#+ Functor)]]
diff --git a/stdlib/source/lux/data/collection/dictionary/ordered.lux b/stdlib/source/lux/data/collection/dictionary/ordered.lux
index 5bd957364..58026984f 100644
--- a/stdlib/source/lux/data/collection/dictionary/ordered.lux
+++ b/stdlib/source/lux/data/collection/dictionary/ordered.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[monad (#+ Monad do)]
equivalence
[order (#+ Order)]]
diff --git a/stdlib/source/lux/data/collection/list.lux b/stdlib/source/lux/data/collection/list.lux
index b2da3337b..bf4661ad4 100644
--- a/stdlib/source/lux/data/collection/list.lux
+++ b/stdlib/source/lux/data/collection/list.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[monoid (#+ Monoid)]
["." functor (#+ Functor)]
[apply (#+ Apply)]
diff --git a/stdlib/source/lux/data/collection/queue.lux b/stdlib/source/lux/data/collection/queue.lux
index 699440648..026190f2b 100644
--- a/stdlib/source/lux/data/collection/queue.lux
+++ b/stdlib/source/lux/data/collection/queue.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[equivalence (#+ Equivalence)]
[functor (#+ Functor)]]
[data
diff --git a/stdlib/source/lux/data/collection/queue/priority.lux b/stdlib/source/lux/data/collection/queue/priority.lux
index 1e7d40022..34a87e51d 100644
--- a/stdlib/source/lux/data/collection/queue/priority.lux
+++ b/stdlib/source/lux/data/collection/queue/priority.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[equivalence (#+ Equivalence)]
[monad (#+ do Monad)]]
[data
diff --git a/stdlib/source/lux/data/collection/row.lux b/stdlib/source/lux/data/collection/row.lux
index d56da4b79..2dc45312f 100644
--- a/stdlib/source/lux/data/collection/row.lux
+++ b/stdlib/source/lux/data/collection/row.lux
@@ -1,14 +1,15 @@
(.module:
[lux #*
- [control
+ [abstract
[functor (#+ Functor)]
[apply (#+ Apply)]
- [monad (#+ do Monad)]
+ [monad (#+ Monad do)]
[equivalence (#+ Equivalence)]
- monoid
- fold
- ["p" parser]
+ [monoid (#+ Monoid)]
+ [fold (#+ Fold)]
[predicate (#+ Predicate)]]
+ [control
+ ["p" parser]]
[data
["." maybe]
["." product]
@@ -338,7 +339,7 @@
(syntax: #export (row {elems (p.some s.any)})
{#.doc (doc "Row literals."
(row +10 +20 +30 +40))}
- (wrap (list (` (from-list (list (~+ elems)))))))
+ (wrap (list (` (..from-list (list (~+ elems)))))))
(structure: #export (node-equivalence Equivalence<a>) (All [a] (-> (Equivalence a) (Equivalence (Node a))))
(def: (= v1 v2)
diff --git a/stdlib/source/lux/data/collection/sequence.lux b/stdlib/source/lux/data/collection/sequence.lux
index 720515c2d..07735cc26 100644
--- a/stdlib/source/lux/data/collection/sequence.lux
+++ b/stdlib/source/lux/data/collection/sequence.lux
@@ -1,9 +1,10 @@
(.module:
[lux #*
- [control
+ [abstract
[functor (#+ Functor)]
- [comonad (#+ CoMonad)]
- ["." continuation (#+ pending Cont)]
+ [comonad (#+ CoMonad)]]
+ [control
+ ["." continuation (#+ Cont pending)]
["p" parser]]
[macro (#+ with-gensyms)
["." code]
diff --git a/stdlib/source/lux/data/collection/set.lux b/stdlib/source/lux/data/collection/set.lux
index 5ab374b84..4c764b818 100644
--- a/stdlib/source/lux/data/collection/set.lux
+++ b/stdlib/source/lux/data/collection/set.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[equivalence (#+ Equivalence)]
[predicate (#+ Predicate)]
[monoid (#+ Monoid)]
diff --git a/stdlib/source/lux/data/collection/set/multi.lux b/stdlib/source/lux/data/collection/set/multi.lux
index 012224e31..c11d4c558 100644
--- a/stdlib/source/lux/data/collection/set/multi.lux
+++ b/stdlib/source/lux/data/collection/set/multi.lux
@@ -1,7 +1,7 @@
## https://en.wikipedia.org/wiki/Multiset
(.module:
[lux #*
- [control
+ [abstract
[equivalence (#+ Equivalence)]
[hash (#+ Hash)]]
["." function]
diff --git a/stdlib/source/lux/data/collection/set/ordered.lux b/stdlib/source/lux/data/collection/set/ordered.lux
index 4d607ce15..4f814c1ea 100644
--- a/stdlib/source/lux/data/collection/set/ordered.lux
+++ b/stdlib/source/lux/data/collection/set/ordered.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[equivalence (#+ Equivalence)]
[order (#+ Order)]]
[data
diff --git a/stdlib/source/lux/data/collection/stack.lux b/stdlib/source/lux/data/collection/stack.lux
index d3a937cb4..089398ca5 100644
--- a/stdlib/source/lux/data/collection/stack.lux
+++ b/stdlib/source/lux/data/collection/stack.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[equivalence (#+ Equivalence)]
[functor (#+ Functor)]]
[data
diff --git a/stdlib/source/lux/data/collection/tree/finger.lux b/stdlib/source/lux/data/collection/tree/finger.lux
index e3aed3b0d..f35129dff 100644
--- a/stdlib/source/lux/data/collection/tree/finger.lux
+++ b/stdlib/source/lux/data/collection/tree/finger.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
["m" monoid]
[predicate (#+ Predicate)]]
[data
diff --git a/stdlib/source/lux/data/collection/tree/rose.lux b/stdlib/source/lux/data/collection/tree/rose.lux
index 97cb840fb..ad64b72ed 100644
--- a/stdlib/source/lux/data/collection/tree/rose.lux
+++ b/stdlib/source/lux/data/collection/tree/rose.lux
@@ -1,11 +1,12 @@
(.module:
[lux #*
- [control
+ [abstract
functor
[monad (#+ do Monad)]
equivalence
- ["p" parser]
fold]
+ [control
+ ["p" parser]]
[data
[collection
["." list ("#@." monad fold)]]]
diff --git a/stdlib/source/lux/data/collection/tree/rose/zipper.lux b/stdlib/source/lux/data/collection/tree/rose/zipper.lux
index 1a8ed4d5c..bac8961e3 100644
--- a/stdlib/source/lux/data/collection/tree/rose/zipper.lux
+++ b/stdlib/source/lux/data/collection/tree/rose/zipper.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
functor
comonad
[equivalence (#+ Equivalence)]]
diff --git a/stdlib/source/lux/data/color.lux b/stdlib/source/lux/data/color.lux
index bd02c4087..60b87ab61 100644
--- a/stdlib/source/lux/data/color.lux
+++ b/stdlib/source/lux/data/color.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[equivalence (#+ Equivalence)]]
[data
[number
diff --git a/stdlib/source/lux/data/env.lux b/stdlib/source/lux/data/env.lux
index 2c8d01fcd..7e4265e6a 100644
--- a/stdlib/source/lux/data/env.lux
+++ b/stdlib/source/lux/data/env.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[functor (#+ Functor)]
comonad]])
diff --git a/stdlib/source/lux/data/error.lux b/stdlib/source/lux/data/error.lux
index 3e7369ed3..c730ee5a5 100644
--- a/stdlib/source/lux/data/error.lux
+++ b/stdlib/source/lux/data/error.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
["." functor (#+ Functor)]
[apply (#+ Apply)]
["." monad (#+ Monad do)]
@@ -10,7 +10,9 @@
(#Failure Text)
(#Success a))
-(structure: #export functor (Functor Error)
+(structure: #export functor
+ (Functor Error)
+
(def: (map f ma)
(case ma
(#Failure msg)
@@ -19,7 +21,9 @@
(#Success datum)
(#Success (f datum)))))
-(structure: #export apply (Apply Error)
+(structure: #export apply
+ (Apply Error)
+
(def: &functor ..functor)
(def: (apply ff fa)
@@ -36,7 +40,9 @@
(#Failure msg))
))
-(structure: #export monad (Monad Error)
+(structure: #export monad
+ (Monad Error)
+
(def: &functor ..functor)
(def: (wrap a)
@@ -74,6 +80,7 @@
(structure: #export (equivalence (^open ",@."))
(All [a] (-> (Equivalence a) (Equivalence (Error a))))
+
(def: (= reference sample)
(case [reference sample]
[(#Success reference) (#Success sample)]
diff --git a/stdlib/source/lux/data/format/binary.lux b/stdlib/source/lux/data/format/binary.lux
index b794fe029..771d9f693 100644
--- a/stdlib/source/lux/data/format/binary.lux
+++ b/stdlib/source/lux/data/format/binary.lux
@@ -1,12 +1,13 @@
(.module:
[lux (#- and or nat int rev list type)
- [control
+ [abstract
[monoid (#+ Monoid)]
["." fold]
- [monad (#+ do Monad)]
- ["." parser (#+ Parser) ("#;." functor)]
- ["ex" exception (#+ exception:)]
+ [monad (#+ Monad do)]
[equivalence (#+ Equivalence)]]
+ [control
+ ["." parser (#+ Parser) ("#;." functor)]
+ ["ex" exception (#+ exception:)]]
[data
["." error (#+ Error)]
[number
diff --git a/stdlib/source/lux/data/format/context.lux b/stdlib/source/lux/data/format/context.lux
index a89675393..6ef06085f 100644
--- a/stdlib/source/lux/data/format/context.lux
+++ b/stdlib/source/lux/data/format/context.lux
@@ -1,9 +1,10 @@
(.module:
[lux #*
+ [abstract
+ [monad (#+ do)]]
[control
[parser (#+ Parser)]
- ["ex" exception (#+ exception:)]
- [monad (#+ do)]]
+ ["ex" exception (#+ exception:)]]
[data
["." error (#+ Error)]
["." text
diff --git a/stdlib/source/lux/data/format/json.lux b/stdlib/source/lux/data/format/json.lux
index b03cb5ae9..34fcf4dfb 100644
--- a/stdlib/source/lux/data/format/json.lux
+++ b/stdlib/source/lux/data/format/json.lux
@@ -1,11 +1,12 @@
(.module: {#.doc (.doc "Functionality for reading and writing values in the JSON format."
"For more information, please see: http://www.json.org/")}
[lux #*
- [control
- pipe
+ [abstract
["." monad (#+ Monad do)]
[equivalence (#+ Equivalence)]
- codec
+ codec]
+ [control
+ pipe
["p" parser (#+ Parser) ("#@." monad)]
["ex" exception (#+ exception:)]]
[data
diff --git a/stdlib/source/lux/data/format/xml.lux b/stdlib/source/lux/data/format/xml.lux
index 85081f86c..6cd469e04 100644
--- a/stdlib/source/lux/data/format/xml.lux
+++ b/stdlib/source/lux/data/format/xml.lux
@@ -1,9 +1,10 @@
(.module: {#.doc "Functionality for reading, generating and processing values in the XML format."}
[lux #*
- [control
+ [abstract
monad
[equivalence (#+ Equivalence)]
- codec
+ codec]
+ [control
["p" parser ("#;." monad)]
["ex" exception (#+ exception:)]]
[data
diff --git a/stdlib/source/lux/data/identity.lux b/stdlib/source/lux/data/identity.lux
index 7793bd7f5..ff464a6f8 100644
--- a/stdlib/source/lux/data/identity.lux
+++ b/stdlib/source/lux/data/identity.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[functor (#+ Functor)]
[apply (#+ Apply)]
[monad (#+ Monad)]
diff --git a/stdlib/source/lux/data/lazy.lux b/stdlib/source/lux/data/lazy.lux
index dc889675a..82cd8ec51 100644
--- a/stdlib/source/lux/data/lazy.lux
+++ b/stdlib/source/lux/data/lazy.lux
@@ -1,11 +1,12 @@
(.module:
[lux #*
["." io]
- [control
+ [abstract
[functor (#+ Functor)]
[apply (#+ Apply)]
[monad (#+ Monad do)]
- [equivalence (#+ Equivalence)]
+ [equivalence (#+ Equivalence)]]
+ [control
[concurrency
["." atom]]]
[macro (#+ with-gensyms)
diff --git a/stdlib/source/lux/data/maybe.lux b/stdlib/source/lux/data/maybe.lux
index e00b89234..b96e014b3 100644
--- a/stdlib/source/lux/data/maybe.lux
+++ b/stdlib/source/lux/data/maybe.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[monoid (#+ Monoid)]
["." functor (#+ Functor)]
[apply (#+ Apply)]
diff --git a/stdlib/source/lux/data/name.lux b/stdlib/source/lux/data/name.lux
index 286071169..59e004ea7 100644
--- a/stdlib/source/lux/data/name.lux
+++ b/stdlib/source/lux/data/name.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[equivalence (#+ Equivalence)]
[codec (#+ Codec)]
hash]
diff --git a/stdlib/source/lux/data/number.lux b/stdlib/source/lux/data/number.lux
index e6b169fc4..0577258ca 100644
--- a/stdlib/source/lux/data/number.lux
+++ b/stdlib/source/lux/data/number.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[codec (#+ Codec)]]
[data
["." error (#+ Error)]
diff --git a/stdlib/source/lux/data/number/complex.lux b/stdlib/source/lux/data/number/complex.lux
index d8334d104..6c057ffb1 100644
--- a/stdlib/source/lux/data/number/complex.lux
+++ b/stdlib/source/lux/data/number/complex.lux
@@ -1,11 +1,12 @@
(.module: {#.doc "Complex arithmetic."}
[lux #*
["." math]
- [control
+ [abstract
[equivalence (#+ Equivalence)]
number
codec
- ["M" monad (#+ Monad do)]
+ ["M" monad (#+ Monad do)]]
+ [control
["p" parser]]
[data
["." maybe]
diff --git a/stdlib/source/lux/data/number/frac.lux b/stdlib/source/lux/data/number/frac.lux
index f49f73039..790aee05b 100644
--- a/stdlib/source/lux/data/number/frac.lux
+++ b/stdlib/source/lux/data/number/frac.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[hash (#+ Hash)]
[number (#+ Number)]
[monoid (#+ Monoid)]
diff --git a/stdlib/source/lux/data/number/i64.lux b/stdlib/source/lux/data/number/i64.lux
index ffce20b4c..dbc58b004 100644
--- a/stdlib/source/lux/data/number/i64.lux
+++ b/stdlib/source/lux/data/number/i64.lux
@@ -1,6 +1,6 @@
(.module:
[lux (#- and or not)
- [control
+ [abstract
[monoid (#+ Monoid)]]])
(def: #export bits-per-byte 8)
diff --git a/stdlib/source/lux/data/number/int.lux b/stdlib/source/lux/data/number/int.lux
index f94049296..22b7aff23 100644
--- a/stdlib/source/lux/data/number/int.lux
+++ b/stdlib/source/lux/data/number/int.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[hash (#+ Hash)]
[number (#+ Number)]
[enum (#+ Enum)]
diff --git a/stdlib/source/lux/data/number/nat.lux b/stdlib/source/lux/data/number/nat.lux
index c1f0ca420..5ca294df5 100644
--- a/stdlib/source/lux/data/number/nat.lux
+++ b/stdlib/source/lux/data/number/nat.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[hash (#+ Hash)]
[number (#+ Number)]
[enum (#+ Enum)]
diff --git a/stdlib/source/lux/data/number/ratio.lux b/stdlib/source/lux/data/number/ratio.lux
index 49ce1f194..a501f9a1b 100644
--- a/stdlib/source/lux/data/number/ratio.lux
+++ b/stdlib/source/lux/data/number/ratio.lux
@@ -1,12 +1,13 @@
(.module: {#.doc "Rational numbers."}
[lux #*
- [control
+ [abstract
[equivalence (#+ Equivalence)]
[order (#+ Order)]
[monoid (#+ Monoid)]
- number
- codec
- monad
+ [number (#+ Number)]
+ [codec (#+ Codec)]
+ [monad (#+ do)]]
+ [control
["p" parser]]
[data
["." error]
diff --git a/stdlib/source/lux/data/number/rev.lux b/stdlib/source/lux/data/number/rev.lux
index bbb34c570..4738a72a0 100644
--- a/stdlib/source/lux/data/number/rev.lux
+++ b/stdlib/source/lux/data/number/rev.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[hash (#+ Hash)]
[number (#+ Number)]
[enum (#+ Enum)]
diff --git a/stdlib/source/lux/data/store.lux b/stdlib/source/lux/data/store.lux
index 69ad7d734..36cc3e67d 100644
--- a/stdlib/source/lux/data/store.lux
+++ b/stdlib/source/lux/data/store.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[functor (#+ Functor)]
comonad]
[type
diff --git a/stdlib/source/lux/data/text.lux b/stdlib/source/lux/data/text.lux
index 384d4e860..bf40c3ef7 100644
--- a/stdlib/source/lux/data/text.lux
+++ b/stdlib/source/lux/data/text.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[monoid (#+ Monoid)]
[equivalence (#+ Equivalence)]
[order (#+ Order)]
@@ -25,18 +25,18 @@
(-> Char Text)
(|>> (:coerce Int) "lux int char"))
-(template [<name> <code>]
+(template [<code> <name>]
[(def: #export <name> (from-code <code>))]
- [null 0]
- [alarm 7]
- [back-space 8]
- [tab 9]
- [new-line 10]
- [vertical-tab 11]
- [form-feed 12]
- [carriage-return 13]
- [double-quote 34]
+ [00 null]
+ [07 alarm]
+ [08 back-space]
+ [09 tab]
+ [10 new-line]
+ [11 vertical-tab]
+ [12 form-feed]
+ [13 carriage-return]
+ [34 double-quote]
)
(def: #export (size x)
diff --git a/stdlib/source/lux/data/text/encoding.lux b/stdlib/source/lux/data/text/encoding.lux
index 8f59bd530..b4372471c 100644
--- a/stdlib/source/lux/data/text/encoding.lux
+++ b/stdlib/source/lux/data/text/encoding.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[codec (#+ Codec)]]
[data
["." error (#+ Error)]]
diff --git a/stdlib/source/lux/data/text/format.lux b/stdlib/source/lux/data/text/format.lux
index 0becf8633..a204e567b 100644
--- a/stdlib/source/lux/data/text/format.lux
+++ b/stdlib/source/lux/data/text/format.lux
@@ -1,7 +1,8 @@
(.module:
[lux #*
+ [abstract
+ [monad (#+ do)]]
[control
- [monad (#+ do)]
["p" parser]]
[data
["." bit]
diff --git a/stdlib/source/lux/data/text/lexer.lux b/stdlib/source/lux/data/text/lexer.lux
index e5f19edf6..531d2ae64 100644
--- a/stdlib/source/lux/data/text/lexer.lux
+++ b/stdlib/source/lux/data/text/lexer.lux
@@ -1,7 +1,8 @@
(.module:
[lux (#- or and not)
+ [abstract
+ [monad (#+ do Monad)]]
[control
- [monad (#+ do Monad)]
["p" parser]
["ex" exception (#+ exception:)]]
[data
diff --git a/stdlib/source/lux/data/text/regex.lux b/stdlib/source/lux/data/text/regex.lux
index b94dbb73a..5e867b9b6 100644
--- a/stdlib/source/lux/data/text/regex.lux
+++ b/stdlib/source/lux/data/text/regex.lux
@@ -1,7 +1,8 @@
(.module:
[lux #*
+ [abstract
+ monad]
[control
- monad
["p" parser ("#@." monad)]]
[data
["." product]
diff --git a/stdlib/source/lux/data/text/unicode.lux b/stdlib/source/lux/data/text/unicode.lux
index 11a98b358..a6fd13ebc 100644
--- a/stdlib/source/lux/data/text/unicode.lux
+++ b/stdlib/source/lux/data/text/unicode.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
["." interval (#+ Interval)]
[monoid (#+ Monoid)]]
[data
diff --git a/stdlib/source/lux/data/trace.lux b/stdlib/source/lux/data/trace.lux
index 055d1758c..94e02ea6b 100644
--- a/stdlib/source/lux/data/trace.lux
+++ b/stdlib/source/lux/data/trace.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
["." monoid (#+ Monoid)]
[functor (#+ Functor)]
comonad]
diff --git a/stdlib/source/lux/function.lux b/stdlib/source/lux/function.lux
index 65202e361..5a33a2aae 100644
--- a/stdlib/source/lux/function.lux
+++ b/stdlib/source/lux/function.lux
@@ -1,13 +1,14 @@
(.module:
[lux #*
- [control
+ [abstract
[monoid (#+ Monoid)]]])
(def: #export identity
{#.doc (doc "Identity function."
"Does nothing to it's argument and just returns it."
- (= (identity "foo")
- "foo"))}
+ (let [value "foo"]
+ (is? (identity value)
+ value)))}
(All [a] (-> a a))
(|>>))
diff --git a/stdlib/source/lux/host.js.lux b/stdlib/source/lux/host.js.lux
index bf24adc38..aec050642 100644
--- a/stdlib/source/lux/host.js.lux
+++ b/stdlib/source/lux/host.js.lux
@@ -1,7 +1,8 @@
(.module:
[lux #*
+ [abstract
+ monad]
[control
- monad
["p" parser]]
[data
[collection
diff --git a/stdlib/source/lux/host.jvm.lux b/stdlib/source/lux/host.jvm.lux
index e4891f56b..b829e21c9 100644
--- a/stdlib/source/lux/host.jvm.lux
+++ b/stdlib/source/lux/host.jvm.lux
@@ -1,8 +1,9 @@
(.module:
[lux (#- type)
+ [abstract
+ ["." monad (#+ Monad do)]
+ ["." enum]]
[control
- ["." monad (#+ do Monad)]
- ["." enum]
["p" parser]]
[data
["." maybe]
diff --git a/stdlib/source/lux/host/jvm/attribute.lux b/stdlib/source/lux/host/jvm/attribute.lux
index 1bef206da..bcd3a3734 100644
--- a/stdlib/source/lux/host/jvm/attribute.lux
+++ b/stdlib/source/lux/host/jvm/attribute.lux
@@ -1,8 +1,9 @@
(.module:
[lux (#- Info Code' Code)
- [control
+ [abstract
["." equivalence (#+ Equivalence)]
- [monad (#+ do)]
+ [monad (#+ do)]]
+ [control
["." state (#+ State)]]
[data
[format
diff --git a/stdlib/source/lux/host/jvm/class.lux b/stdlib/source/lux/host/jvm/class.lux
index 2474ffa69..6fb6f48d4 100644
--- a/stdlib/source/lux/host/jvm/class.lux
+++ b/stdlib/source/lux/host/jvm/class.lux
@@ -1,10 +1,11 @@
(.module:
[lux #*
- [control
+ [abstract
["." equivalence (#+ Equivalence)]
[monoid (#+)]
+ ["." monad (#+ do)]]
+ [control
[parser (#+)]
- ["." monad (#+ do)]
["." state (#+ State)]]
[data
[number (#+)
diff --git a/stdlib/source/lux/host/jvm/constant.lux b/stdlib/source/lux/host/jvm/constant.lux
index d9fcc2731..3af24af55 100644
--- a/stdlib/source/lux/host/jvm/constant.lux
+++ b/stdlib/source/lux/host/jvm/constant.lux
@@ -1,9 +1,10 @@
(.module:
[lux #*
- [control
+ [abstract
[monad (#+ do)]
- ["." parser]
["." equivalence (#+ Equivalence)]]
+ [control
+ ["." parser]]
[data
[number
["." int]
diff --git a/stdlib/source/lux/host/jvm/constant/pool.lux b/stdlib/source/lux/host/jvm/constant/pool.lux
index 846c0fa18..a304d5ac4 100644
--- a/stdlib/source/lux/host/jvm/constant/pool.lux
+++ b/stdlib/source/lux/host/jvm/constant/pool.lux
@@ -1,8 +1,9 @@
(.module:
[lux #*
- [control
+ [abstract
["." equivalence (#+ Equivalence)]
- [monad (#+ do)]
+ [monad (#+ do)]]
+ [control
["." state (#+ State)]]
[data
["." text ("#;." equivalence)]
diff --git a/stdlib/source/lux/host/jvm/constant/tag.lux b/stdlib/source/lux/host/jvm/constant/tag.lux
index 0339489f9..71e75f40b 100644
--- a/stdlib/source/lux/host/jvm/constant/tag.lux
+++ b/stdlib/source/lux/host/jvm/constant/tag.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[equivalence (#+ Equivalence)]]
[data
[format
diff --git a/stdlib/source/lux/host/jvm/encoding.lux b/stdlib/source/lux/host/jvm/encoding.lux
index 7d7fb636d..33ac427c2 100644
--- a/stdlib/source/lux/host/jvm/encoding.lux
+++ b/stdlib/source/lux/host/jvm/encoding.lux
@@ -1,7 +1,8 @@
(.module:
[lux #*
+ [abstract
+ [equivalence (#+ Equivalence)]]
[control
- [equivalence (#+ Equivalence)]
["." parser ("#;." functor)]]
[data
[number
diff --git a/stdlib/source/lux/host/jvm/field.lux b/stdlib/source/lux/host/jvm/field.lux
index f40800790..930ca97d8 100644
--- a/stdlib/source/lux/host/jvm/field.lux
+++ b/stdlib/source/lux/host/jvm/field.lux
@@ -1,10 +1,11 @@
(.module:
[lux (#- static)
- [control
+ [abstract
["." equivalence (#+ Equivalence)]
[monoid (#+)]
+ ["." monad (#+ do)]]
+ [control
[parser (#+)]
- ["." monad (#+ do)]
["." state (#+ State)]]
[data
[number (#+)
diff --git a/stdlib/source/lux/host/jvm/index.lux b/stdlib/source/lux/host/jvm/index.lux
index c7174f9d4..3a425dd32 100644
--- a/stdlib/source/lux/host/jvm/index.lux
+++ b/stdlib/source/lux/host/jvm/index.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
["." equivalence (#+ Equivalence)]]
[data
[format
diff --git a/stdlib/source/lux/host/jvm/loader.jvm.lux b/stdlib/source/lux/host/jvm/loader.jvm.lux
index 03edd60cf..22e8a8352 100644
--- a/stdlib/source/lux/host/jvm/loader.jvm.lux
+++ b/stdlib/source/lux/host/jvm/loader.jvm.lux
@@ -1,7 +1,8 @@
(.module:
[lux #*
+ [abstract
+ [monad (#+ do)]]
[control
- [monad (#+ do)]
["ex" exception (#+ exception:)]
[concurrency
["." atom (#+ Atom)]]]
diff --git a/stdlib/source/lux/host/jvm/method.lux b/stdlib/source/lux/host/jvm/method.lux
index e0ef63d3e..e4f3cdea2 100644
--- a/stdlib/source/lux/host/jvm/method.lux
+++ b/stdlib/source/lux/host/jvm/method.lux
@@ -1,10 +1,11 @@
(.module:
[lux (#- static)
- [control
+ [abstract
["." equivalence (#+ Equivalence)]
[monoid (#+)]
+ ["." monad (#+ do)]]
+ [control
[parser (#+)]
- ["." monad (#+ do)]
["." state (#+ State)]]
[data
[number (#+)
diff --git a/stdlib/source/lux/host/jvm/modifier.lux b/stdlib/source/lux/host/jvm/modifier.lux
index e25e14b78..ac8d1b201 100644
--- a/stdlib/source/lux/host/jvm/modifier.lux
+++ b/stdlib/source/lux/host/jvm/modifier.lux
@@ -1,8 +1,9 @@
(.module:
[lux #*
- [control
+ [abstract
["." equivalence]
- ["." monoid]
+ ["." monoid]]
+ [control
["." parser]]
[data
["." number
diff --git a/stdlib/source/lux/host/jvm/modifier/inner.lux b/stdlib/source/lux/host/jvm/modifier/inner.lux
index 9f57965d0..2980ef6e4 100644
--- a/stdlib/source/lux/host/jvm/modifier/inner.lux
+++ b/stdlib/source/lux/host/jvm/modifier/inner.lux
@@ -1,8 +1,9 @@
(.module:
[lux (#- static)
- [control
+ [abstract
[equivalence (#+)]
- [monoid (#+)]
+ [monoid (#+)]]
+ [control
[parser (#+)]]
[data
[number (#+)
diff --git a/stdlib/source/lux/io.lux b/stdlib/source/lux/io.lux
index 4da9fe897..4102ff9c4 100644
--- a/stdlib/source/lux/io.lux
+++ b/stdlib/source/lux/io.lux
@@ -1,6 +1,6 @@
(.module: {#.doc "A method for abstracting I/O and effectful computations to make it safe while writing pure functional code."}
[lux #*
- [control
+ [abstract
[functor (#+ Functor)]
[apply (#+ Apply)]
[monad (#+ Monad do)]]
diff --git a/stdlib/source/lux/locale.lux b/stdlib/source/lux/locale.lux
index 3d0f3e532..1d6a4385f 100644
--- a/stdlib/source/lux/locale.lux
+++ b/stdlib/source/lux/locale.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[equivalence (#+ Equivalence)]
[hash (#+ Hash)]]
[data
diff --git a/stdlib/source/lux/locale/language.lux b/stdlib/source/lux/locale/language.lux
index 1cfa9dd82..dbda89f73 100644
--- a/stdlib/source/lux/locale/language.lux
+++ b/stdlib/source/lux/locale/language.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[equivalence (#+ Equivalence)]
[hash (#+ Hash)]]
[data
diff --git a/stdlib/source/lux/locale/territory.lux b/stdlib/source/lux/locale/territory.lux
index b37148bb2..dfd06f8c8 100644
--- a/stdlib/source/lux/locale/territory.lux
+++ b/stdlib/source/lux/locale/territory.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[equivalence (#+ Equivalence)]
[hash (#+ Hash)]]
[data
diff --git a/stdlib/source/lux/macro.lux b/stdlib/source/lux/macro.lux
index 059351420..a3014c649 100644
--- a/stdlib/source/lux/macro.lux
+++ b/stdlib/source/lux/macro.lux
@@ -1,6 +1,6 @@
(.module: {#.doc "Functions for extracting information from the state of the compiler."}
[lux #*
- [control
+ [abstract
[functor (#+ Functor)]
[apply (#+ Apply)]
["." monad (#+ Monad do)]]
diff --git a/stdlib/source/lux/macro/code.lux b/stdlib/source/lux/macro/code.lux
index 84f08e5f1..ae7ba555c 100644
--- a/stdlib/source/lux/macro/code.lux
+++ b/stdlib/source/lux/macro/code.lux
@@ -1,6 +1,6 @@
(.module:
[lux (#- nat int rev)
- [control
+ [abstract
["." equivalence (#+ Equivalence)]]
[data
["." bit]
diff --git a/stdlib/source/lux/macro/poly.lux b/stdlib/source/lux/macro/poly.lux
index 4f5cd09a0..31b293144 100644
--- a/stdlib/source/lux/macro/poly.lux
+++ b/stdlib/source/lux/macro/poly.lux
@@ -1,8 +1,9 @@
(.module:
[lux (#- function)
- [control
+ [abstract
["." monad (#+ Monad do)]
- [equivalence]
+ [equivalence]]
+ [control
["p" parser]
["ex" exception (#+ exception:)]]
["." function]
diff --git a/stdlib/source/lux/macro/poly/equivalence.lux b/stdlib/source/lux/macro/poly/equivalence.lux
index cc0b79234..c39ad9412 100644
--- a/stdlib/source/lux/macro/poly/equivalence.lux
+++ b/stdlib/source/lux/macro/poly/equivalence.lux
@@ -1,8 +1,9 @@
(.module:
[lux #*
+ [abstract
+ [monad (#+ Monad do)]
+ ["/" equivalence]]
[control
- [monad (#+ do Monad)]
- ["eq" equivalence]
["p" parser]]
[data
["." product]
@@ -45,7 +46,7 @@
inputT poly.peek
#let [@Equivalence (: (-> Type Code)
(function (_ type)
- (` ((~! eq.Equivalence) (~ (poly.to-code *env* type))))))]]
+ (` ((~! /.Equivalence) (~ (poly.to-code *env* type))))))]]
($_ p.either
## Basic types
(~~ (template [<matcher> <eq>]
@@ -135,8 +136,8 @@
[[g!self bodyC] (poly.recursive equivalence)
#let [g!_ (code.local-identifier "_____________")]]
(wrap (` (: (~ (@Equivalence inputT))
- ((~! eq.rec) (.function ((~ g!_) (~ g!self))
- (~ bodyC)))))))
+ ((~! /.rec) (.function ((~ g!_) (~ g!self))
+ (~ bodyC)))))))
poly.recursive-self
## Type applications
(do @
@@ -148,8 +149,8 @@
(do @
[[funcC varsC bodyC] (poly.polymorphic equivalence)]
(wrap (` (: (All [(~+ varsC)]
- (-> (~+ (list@map (|>> (~) ((~! eq.Equivalence)) (`)) varsC))
- ((~! eq.Equivalence) ((~ (poly.to-code *env* inputT)) (~+ varsC)))))
+ (-> (~+ (list@map (|>> (~) ((~! /.Equivalence)) (`)) varsC))
+ ((~! /.Equivalence) ((~ (poly.to-code *env* inputT)) (~+ varsC)))))
(function ((~ funcC) (~+ varsC))
(~ bodyC))))))
poly.recursive-call
diff --git a/stdlib/source/lux/macro/poly/functor.lux b/stdlib/source/lux/macro/poly/functor.lux
index 6252378eb..947f08ac8 100644
--- a/stdlib/source/lux/macro/poly/functor.lux
+++ b/stdlib/source/lux/macro/poly/functor.lux
@@ -1,8 +1,9 @@
(.module:
[lux #*
+ [abstract
+ [monad (#+ Monad do)]
+ ["." functor]]
[control
- [monad (#+ do Monad)]
- ["." functor]
["p" parser]]
[data
["." product]
diff --git a/stdlib/source/lux/macro/poly/json.lux b/stdlib/source/lux/macro/poly/json.lux
index cc5f3b5c9..f397de2a2 100644
--- a/stdlib/source/lux/macro/poly/json.lux
+++ b/stdlib/source/lux/macro/poly/json.lux
@@ -1,9 +1,10 @@
(.module: {#.doc "Codecs for values in the JSON format."}
[lux #*
- [control
+ [abstract
[monad (#+ Monad do)]
[equivalence (#+ Equivalence)]
- ["." codec]
+ ["." codec]]
+ [control
["p" parser]]
[data
["." bit]
diff --git a/stdlib/source/lux/macro/syntax.lux b/stdlib/source/lux/macro/syntax.lux
index 08bb3c978..90d8b0938 100644
--- a/stdlib/source/lux/macro/syntax.lux
+++ b/stdlib/source/lux/macro/syntax.lux
@@ -1,8 +1,9 @@
(.module:
[lux (#- nat int rev)
- [control
+ [abstract
["." monad (#+ Monad do)]
- [equivalence (#+ Equivalence)]
+ [equivalence (#+ Equivalence)]]
+ [control
["p" parser]]
[data
["." bit]
diff --git a/stdlib/source/lux/macro/syntax/common/reader.lux b/stdlib/source/lux/macro/syntax/common/reader.lux
index 6ad2e4d46..99277857f 100644
--- a/stdlib/source/lux/macro/syntax/common/reader.lux
+++ b/stdlib/source/lux/macro/syntax/common/reader.lux
@@ -1,7 +1,8 @@
(.module: {#.doc "Commons syntax readers."}
[lux #*
+ [abstract
+ monad]
[control
- monad
["p" parser ("#;." monad)]]
[data
["." name ("#;." equivalence)]
diff --git a/stdlib/source/lux/macro/template.lux b/stdlib/source/lux/macro/template.lux
index a69d656f6..ad1600856 100644
--- a/stdlib/source/lux/macro/template.lux
+++ b/stdlib/source/lux/macro/template.lux
@@ -1,7 +1,8 @@
(.module:
[lux #*
+ [abstract
+ ["." monad (#+ do)]]
[control
- ["." monad (#+ do)]
["p" parser ("#@." functor)]]
[data
["." bit ("#@." codec)]
diff --git a/stdlib/source/lux/math/infix.lux b/stdlib/source/lux/math/infix.lux
index e2cfc455c..ecb309d13 100644
--- a/stdlib/source/lux/math/infix.lux
+++ b/stdlib/source/lux/math/infix.lux
@@ -1,7 +1,8 @@
(.module: {#.doc "Common mathematical constants and functions."}
[lux #*
+ [abstract
+ monad]
[control
- monad
["p" parser ("#;." functor)]]
[data
["." product]
diff --git a/stdlib/source/lux/math/logic/fuzzy.lux b/stdlib/source/lux/math/logic/fuzzy.lux
index 99bc2f8db..f27c51ec7 100644
--- a/stdlib/source/lux/math/logic/fuzzy.lux
+++ b/stdlib/source/lux/math/logic/fuzzy.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[predicate (#+ Predicate)]]
[data
[collection
diff --git a/stdlib/source/lux/math/modular.lux b/stdlib/source/lux/math/modular.lux
index 866d3c99f..24c7b0e72 100644
--- a/stdlib/source/lux/math/modular.lux
+++ b/stdlib/source/lux/math/modular.lux
@@ -1,10 +1,11 @@
(.module:
[lux #*
- [control
- ["ex" exception (#+ exception:)]
- ["p" parser]
+ [abstract
[codec (#+ Codec)]
[monad (#+ do)]]
+ [control
+ ["ex" exception (#+ exception:)]
+ ["p" parser]]
[data
["." error (#+ Error)]
[number
diff --git a/stdlib/source/lux/math/random.lux b/stdlib/source/lux/math/random.lux
index 47ddb7fa2..ef1ed3e37 100644
--- a/stdlib/source/lux/math/random.lux
+++ b/stdlib/source/lux/math/random.lux
@@ -1,6 +1,6 @@
(.module: {#.doc "Pseudo-random number generation (PRNG) algorithms."}
[lux (#- or and list i64 nat int rev char)
- [control
+ [abstract
[functor (#+ Functor)]
[apply (#+ Apply)]
["." monad (#+ do Monad)]
diff --git a/stdlib/source/lux/test.lux b/stdlib/source/lux/test.lux
index 9f261dbc8..58d7654d3 100644
--- a/stdlib/source/lux/test.lux
+++ b/stdlib/source/lux/test.lux
@@ -1,7 +1,8 @@
(.module: {#.doc "Tools for unit & property-based/generative testing."}
[lux (#- and)
+ [abstract
+ ["." monad (#+ Monad do)]]
[control
- ["." monad (#+ Monad do)]
["ex" exception (#+ exception:)]
[concurrency
["." promise (#+ Promise) ("#;." monad)]]]
diff --git a/stdlib/source/lux/time/date.lux b/stdlib/source/lux/time/date.lux
index 9ca3b8939..994b95dbe 100644
--- a/stdlib/source/lux/time/date.lux
+++ b/stdlib/source/lux/time/date.lux
@@ -1,12 +1,13 @@
(.module:
[lux #*
- [control
+ [abstract
[equivalence (#+ Equivalence)]
[order (#+ Order)]
[enum (#+ Enum)]
codec
- ["p" parser ("#@." functor)]
[monad (#+ do)]]
+ [control
+ ["p" parser ("#@." functor)]]
[data
["." error (#+ Error)]
["." maybe]
diff --git a/stdlib/source/lux/time/day.lux b/stdlib/source/lux/time/day.lux
index 53aa37483..87c603937 100644
--- a/stdlib/source/lux/time/day.lux
+++ b/stdlib/source/lux/time/day.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[equivalence (#+ Equivalence)]
[order (#+ Order)]
[enum (#+ Enum)]]])
diff --git a/stdlib/source/lux/time/duration.lux b/stdlib/source/lux/time/duration.lux
index cbad3c694..887a074f7 100644
--- a/stdlib/source/lux/time/duration.lux
+++ b/stdlib/source/lux/time/duration.lux
@@ -1,12 +1,13 @@
(.module:
[lux #*
- [control
+ [abstract
equivalence
[order (#+ Order)]
codec
[monoid (#+ Monoid)]
- ["p" parser]
[monad (#+ do)]]
+ [control
+ ["p" parser]]
[data
[number
["." nat ("#;." decimal)]
diff --git a/stdlib/source/lux/time/instant.lux b/stdlib/source/lux/time/instant.lux
index 4231cc6c1..866616ca1 100644
--- a/stdlib/source/lux/time/instant.lux
+++ b/stdlib/source/lux/time/instant.lux
@@ -1,12 +1,13 @@
(.module:
[lux #*
[io (#+ IO io)]
- [control
+ [abstract
[equivalence (#+ Equivalence)]
[order (#+ Order)]
[enum (#+ Enum)]
codec
- [monad (#+ do Monad)]
+ [monad (#+ do Monad)]]
+ [control
["p" parser]]
[data
["." error (#+ Error)]
diff --git a/stdlib/source/lux/time/month.lux b/stdlib/source/lux/time/month.lux
index 2863220da..3911d7849 100644
--- a/stdlib/source/lux/time/month.lux
+++ b/stdlib/source/lux/time/month.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[equivalence (#+ Equivalence)]
[order (#+ Order)]
[enum (#+ Enum)]]])
diff --git a/stdlib/source/lux/tool/compiler/analysis.lux b/stdlib/source/lux/tool/compiler/analysis.lux
index c2a6d0cb7..2f173007b 100644
--- a/stdlib/source/lux/tool/compiler/analysis.lux
+++ b/stdlib/source/lux/tool/compiler/analysis.lux
@@ -1,6 +1,6 @@
(.module:
[lux (#- nat int rev)
- [control
+ [abstract
[monad (#+ do)]]
[data
["." product]
diff --git a/stdlib/source/lux/tool/compiler/meta/archive.lux b/stdlib/source/lux/tool/compiler/meta/archive.lux
index e9ecee8cd..46a6ce0a6 100644
--- a/stdlib/source/lux/tool/compiler/meta/archive.lux
+++ b/stdlib/source/lux/tool/compiler/meta/archive.lux
@@ -1,9 +1,10 @@
(.module:
[lux (#- Module)
- [control
- ["ex" exception (#+ exception:)]
+ [abstract
["." equivalence (#+ Equivalence)]
["." monad (#+ do)]]
+ [control
+ ["ex" exception (#+ exception:)]]
[data
["." error (#+ Error)]
["." name]
diff --git a/stdlib/source/lux/tool/compiler/meta/archive/signature.lux b/stdlib/source/lux/tool/compiler/meta/archive/signature.lux
index b8b9c43b2..7c9f0cbe2 100644
--- a/stdlib/source/lux/tool/compiler/meta/archive/signature.lux
+++ b/stdlib/source/lux/tool/compiler/meta/archive/signature.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
["." equivalence (#+ Equivalence)]]
[data
["." name]
diff --git a/stdlib/source/lux/tool/compiler/phase.lux b/stdlib/source/lux/tool/compiler/phase.lux
index 3ae66af16..09657c3cf 100644
--- a/stdlib/source/lux/tool/compiler/phase.lux
+++ b/stdlib/source/lux/tool/compiler/phase.lux
@@ -1,9 +1,10 @@
(.module:
[lux #*
+ [abstract
+ [monad (#+ do)]]
[control
["." state]
- ["ex" exception (#+ Exception exception:)]
- [monad (#+ do)]]
+ ["ex" exception (#+ Exception exception:)]]
[data
["." product]
["." error (#+ Error) ("#;." functor)]
diff --git a/stdlib/source/lux/tool/compiler/phase/extension.lux b/stdlib/source/lux/tool/compiler/phase/extension.lux
index 7ce75f6e5..87e7474d4 100644
--- a/stdlib/source/lux/tool/compiler/phase/extension.lux
+++ b/stdlib/source/lux/tool/compiler/phase/extension.lux
@@ -1,7 +1,8 @@
(.module:
[lux (#- Name)
+ [abstract
+ [monad (#+ do)]]
[control
- [monad (#+ do)]
["ex" exception (#+ exception:)]]
[data
["." error (#+ Error)]
diff --git a/stdlib/source/lux/tool/compiler/phase/extension/bundle.lux b/stdlib/source/lux/tool/compiler/phase/extension/bundle.lux
index ad99db848..28015b956 100644
--- a/stdlib/source/lux/tool/compiler/phase/extension/bundle.lux
+++ b/stdlib/source/lux/tool/compiler/phase/extension/bundle.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[monad (#+ do)]]
[data
["." text
diff --git a/stdlib/source/lux/tool/compiler/phase/generation.lux b/stdlib/source/lux/tool/compiler/phase/generation.lux
index f0609d666..3053752fe 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation.lux
@@ -1,7 +1,8 @@
(.module:
[lux (#- Module)
+ [abstract
+ [monad (#+ do)]]
[control
- [monad (#+ do)]
["." exception (#+ exception:)]]
[data
["." product]
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/extension.lux b/stdlib/source/lux/tool/compiler/phase/generation/extension.lux
index 681fd35f8..7c08e94cc 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/extension.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/extension.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
["." monad (#+ do)]]
[data
[collection
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/js.lux b/stdlib/source/lux/tool/compiler/phase/generation/js.lux
index 29c95ff43..37a8d1bc6 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/js.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/js.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[monad (#+ do)]]]
[/
[runtime (#+ Phase)]
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/js/case.lux b/stdlib/source/lux/tool/compiler/phase/generation/js/case.lux
index 4561e5e84..86c7197ec 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/js/case.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/js/case.lux
@@ -1,7 +1,8 @@
(.module:
[lux (#- case let if)
+ [abstract
+ [monad (#+ do)]]
[control
- [monad (#+ do)]
["ex" exception (#+ exception:)]]
[data
["." text
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/js/extension/common.lux b/stdlib/source/lux/tool/compiler/phase/generation/js/extension/common.lux
index 2ee78f394..3cc75105f 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/js/extension/common.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/js/extension/common.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
["." monad (#+ do)]]
[data
["." product]
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/js/extension/host.lux b/stdlib/source/lux/tool/compiler/phase/generation/js/extension/host.lux
index 70f581d69..f78daf215 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/js/extension/host.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/js/extension/host.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
["." monad (#+ do)]]
[data
["." product]
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/js/function.lux b/stdlib/source/lux/tool/compiler/phase/generation/js/function.lux
index 10a53986f..4839c9978 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/js/function.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/js/function.lux
@@ -1,7 +1,8 @@
(.module:
[lux (#- function)
+ [abstract
+ ["." monad (#+ do)]]
[control
- ["." monad (#+ do)]
pipe]
[data
["." product]
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/js/loop.lux b/stdlib/source/lux/tool/compiler/phase/generation/js/loop.lux
index d905db9a2..9ab04cae6 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/js/loop.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/js/loop.lux
@@ -1,6 +1,6 @@
(.module:
[lux (#- Scope)
- [control
+ [abstract
["." monad (#+ do)]]
[data
["." product]
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/js/runtime.lux b/stdlib/source/lux/tool/compiler/phase/generation/js/runtime.lux
index 821633e50..97eee0025 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/js/runtime.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/js/runtime.lux
@@ -1,8 +1,9 @@
(.module:
[lux #*
["." function]
+ [abstract
+ [monad (#+ do)]]
[control
- [monad (#+ do)]
["p" parser]]
[data
[number (#+ hex)
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/js/structure.lux b/stdlib/source/lux/tool/compiler/phase/generation/js/structure.lux
index c6b413afb..a70376569 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/js/structure.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/js/structure.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
["." monad (#+ do)]]
[host
["_" js (#+ Expression)]]]
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/python.lux b/stdlib/source/lux/tool/compiler/phase/generation/python.lux
index 29c95ff43..37a8d1bc6 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/python.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/python.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[monad (#+ do)]]]
[/
[runtime (#+ Phase)]
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/python/case.lux b/stdlib/source/lux/tool/compiler/phase/generation/python/case.lux
index b1f53a8b2..359cfdb3b 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/python/case.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/python/case.lux
@@ -1,7 +1,8 @@
(.module:
[lux (#- case let if)
+ [abstract
+ [monad (#+ do)]]
[control
- [monad (#+ do)]
["ex" exception (#+ exception:)]]
[data
["." text
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/python/extension/common.lux b/stdlib/source/lux/tool/compiler/phase/generation/python/extension/common.lux
index 7ff70b393..46cd6d79e 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/python/extension/common.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/python/extension/common.lux
@@ -1,7 +1,7 @@
(.module:
[lux #*
["." function]
- [control
+ [abstract
["." monad (#+ do)]]
[data
["." product]
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/python/extension/host.lux b/stdlib/source/lux/tool/compiler/phase/generation/python/extension/host.lux
index 92887899b..242022c87 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/python/extension/host.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/python/extension/host.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
["." monad (#+ do)]]
[data
["." product]
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/python/function.lux b/stdlib/source/lux/tool/compiler/phase/generation/python/function.lux
index 3ba95e0f3..a5f918dc1 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/python/function.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/python/function.lux
@@ -1,7 +1,8 @@
(.module:
[lux (#- function)
+ [abstract
+ ["." monad (#+ do)]]
[control
- ["." monad (#+ do)]
pipe]
[data
["." product]
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/python/loop.lux b/stdlib/source/lux/tool/compiler/phase/generation/python/loop.lux
index 7666319bf..12d83b756 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/python/loop.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/python/loop.lux
@@ -1,6 +1,6 @@
(.module:
[lux (#- Scope)
- [control
+ [abstract
["." monad (#+ do)]]
[data
["." product]
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/python/runtime.lux b/stdlib/source/lux/tool/compiler/phase/generation/python/runtime.lux
index 36184e21c..d10434000 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/python/runtime.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/python/runtime.lux
@@ -1,8 +1,9 @@
(.module:
[lux (#- inc)
["." function]
+ [abstract
+ [monad (#+ do)]]
[control
- [monad (#+ do)]
["p" parser]]
[data
[number (#+ hex)
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/python/structure.lux b/stdlib/source/lux/tool/compiler/phase/generation/python/structure.lux
index 6daf5e532..93a83883d 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/python/structure.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/python/structure.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
["." monad (#+ do)]]
[host
["_" python (#+ Expression)]]]
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/scheme.lux b/stdlib/source/lux/tool/compiler/phase/generation/scheme.lux
index 5da2a016e..2ccf4f45a 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/scheme.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/scheme.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
[monad (#+ do)]]]
[/
[runtime (#+ Phase)]
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/scheme/case.jvm.lux b/stdlib/source/lux/tool/compiler/phase/generation/scheme/case.jvm.lux
index 49733e6f3..d68abbdd7 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/scheme/case.jvm.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/scheme/case.jvm.lux
@@ -1,7 +1,8 @@
(.module:
[lux (#- case let if)
+ [abstract
+ [monad (#+ do)]]
[control
- [monad (#+ do)]
["ex" exception (#+ exception:)]]
[data
["." number]
@@ -97,9 +98,9 @@
(def: (pm-catch handler)
(-> Expression Computation)
(_.lambda [(list @alt-error) #.None]
- (_.if (|> @alt-error (_.eqv?/2 pm-error))
- handler
- (_.raise/1 @alt-error))))
+ (_.if (|> @alt-error (_.eqv?/2 pm-error))
+ handler
+ (_.raise/1 @alt-error))))
(def: (pattern-matching' generate pathP)
(-> Phase Path (Operation Expression))
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/scheme/extension/common.jvm.lux b/stdlib/source/lux/tool/compiler/phase/generation/scheme/extension/common.jvm.lux
index 0de327e23..cb96a5718 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/scheme/extension/common.jvm.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/scheme/extension/common.jvm.lux
@@ -1,7 +1,8 @@
(.module:
[lux #*
+ [abstract
+ ["." monad (#+ do)]]
[control
- ["." monad (#+ do)]
["ex" exception (#+ exception:)]]
[data
["e" error]
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/scheme/function.jvm.lux b/stdlib/source/lux/tool/compiler/phase/generation/scheme/function.jvm.lux
index 2cbb89825..28bfd36ba 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/scheme/function.jvm.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/scheme/function.jvm.lux
@@ -1,7 +1,8 @@
(.module:
[lux (#- function)
+ [abstract
+ ["." monad (#+ do)]]
[control
- ["." monad (#+ do)]
pipe]
[data
["." product]
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/scheme/loop.jvm.lux b/stdlib/source/lux/tool/compiler/phase/generation/scheme/loop.jvm.lux
index 7064c8301..6922806e2 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/scheme/loop.jvm.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/scheme/loop.jvm.lux
@@ -1,6 +1,6 @@
(.module:
[lux (#- Scope)
- [control
+ [abstract
["." monad (#+ do)]]
[data
["." product]
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/scheme/runtime.jvm.lux b/stdlib/source/lux/tool/compiler/phase/generation/scheme/runtime.jvm.lux
index d3c949df1..1e891c006 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/scheme/runtime.jvm.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/scheme/runtime.jvm.lux
@@ -1,9 +1,10 @@
(.module:
[lux #*
["." function]
- [control
- ["p" parser ("#;." monad)]
+ [abstract
[monad (#+ do)]]
+ [control
+ ["p" parser ("#;." monad)]]
[data
[number (#+ hex)]
[text
diff --git a/stdlib/source/lux/tool/compiler/phase/generation/scheme/structure.jvm.lux b/stdlib/source/lux/tool/compiler/phase/generation/scheme/structure.jvm.lux
index 7419ad239..e44ab508b 100644
--- a/stdlib/source/lux/tool/compiler/phase/generation/scheme/structure.jvm.lux
+++ b/stdlib/source/lux/tool/compiler/phase/generation/scheme/structure.jvm.lux
@@ -1,6 +1,6 @@
(.module:
[lux #*
- [control
+ [abstract
["." monad (#+ do)]]
[host
["_" scheme (#+ Expression)]]]
diff --git a/stdlib/source/lux/tool/compiler/phase/synthesis/case.lux b/stdlib/source/lux/tool/compiler/phase/synthesis/case.lux
index 7da1a41c7..ea8615949 100644
--- a/stdlib/source/lux/tool/compiler/phase/synthesis/case.lux
+++ b/stdlib/source/lux/tool/compiler/phase/synthesis/case.lux
@@ -1,9 +1,10 @@
(.module:
[lux #*
- [control
+ [abstract
[equivalence (#+ Equivalence)]
- [pipe (#+ when> new> case>)]
["." monad (#+ do)]]
+ [control
+ [pipe (#+ when> new> case>)]]
[data
["." product]
["." bit ("#@." equivalence)]
diff --git a/stdlib/source/lux/tool/compiler/phase/synthesis/function.lux b/stdlib/source/lux/tool/compiler/phase/synthesis/function.lux
index a1bc743c3..8d1b71d90 100644
--- a/stdlib/source/lux/tool/compiler/phase/synthesis/function.lux
+++ b/stdlib/source/lux/tool/compiler/phase/synthesis/function.lux
@@ -1,7 +1,8 @@
(.module:
[lux #*
+ [abstract
+ ["." monad (#+ do)]]
[control
- ["." monad (#+ do)]
["ex" exception (#+ exception:)]]
[data
["." maybe]
diff --git a/stdlib/source/lux/tool/compiler/phase/synthesis/loop.lux b/stdlib/source/lux/tool/compiler/phase/synthesis/loop.lux
index 54bec7b03..0ac6cc12b 100644
--- a/stdlib/source/lux/tool/compiler/phase/synthesis/loop.lux
+++ b/stdlib/source/lux/tool/compiler/phase/synthesis/loop.lux
@@ -1,7 +1,8 @@
(.module:
[lux (#- loop)
+ [abstract
+ ["." monad (#+ do)]]
[control
- ["." monad (#+ do)]
["p" parser]]
[data
["." maybe ("#;." monad)]
diff --git a/stdlib/source/lux/tool/compiler/reference.lux b/stdlib/source/lux/tool/compiler/reference.lux
index 7022b2496..20d819ef7 100644
--- a/stdlib/source/lux/tool/compiler/reference.lux
+++ b/stdlib/source/lux/tool/compiler/reference.lux
@@ -1,8 +1,9 @@
(.module:
[lux #*
- [control
+ [abstract
[equivalence (#+ Equivalence)]
- [hash (#+ Hash)]
+ [hash (#+ Hash)]]
+ [control
pipe]
[data
[text
diff --git a/stdlib/source/lux/tool/compiler/synthesis.lux b/stdlib/source/lux/tool/compiler/synthesis.lux
index 39b62ac88..d12c8c3ea 100644
--- a/stdlib/source/lux/tool/compiler/synthesis.lux
+++ b/stdlib/source/lux/tool/compiler/synthesis.lux
@@ -1,8 +1,9 @@
(.module:
[lux (#- i64 Scope)
- [control
+ [abstract
[monad (#+ do)]
- [equivalence (#+ Equivalence)]
+ [equivalence (#+ Equivalence)]]
+ [control
["ex" exception (#+ exception:)]]
[data
["." bit ("#;." equivalence)]
diff --git a/stdlib/source/lux/type.lux b/stdlib/source/lux/type.lux
index 217b22abc..031e5025d 100644
--- a/stdlib/source/lux/type.lux
+++ b/stdlib/source/lux/type.lux
@@ -1,8 +1,9 @@
(.module: {#.doc "Basic functionality for working with types."}
[lux (#- function)
- [control
+ [abstract
[equivalence (#+ Equivalence)]
- [monad (#+ Monad do)]
+ [monad (#+ Monad do)]]
+ [control
["p" parser]]
[data
["." text ("#;." monoid equivalence)]
diff --git a/stdlib/source/lux/type/abstract.lux b/stdlib/source/lux/type/abstract.lux
index 1a45c6e56..d293c4083 100644
--- a/stdlib/source/lux/type/abstract.lux
+++ b/stdlib/source/lux/type/abstract.lux
@@ -1,7 +1,8 @@
(.module:
[lux (#- Scope)
+ [abstract
+ [monad (#+ Monad do)]]
[control
- [monad (#+ Monad do)]
["p" parser ("#;." monad)]
["ex" exception (#+ exception:)]]
[data
diff --git a/stdlib/source/lux/type/check.lux b/stdlib/source/lux/type/check.lux
index 636a1722e..359a0e3b0 100644
--- a/stdlib/source/lux/type/check.lux
+++ b/stdlib/source/lux/type/check.lux
@@ -1,9 +1,10 @@
(.module: {#.doc "Type-checking functionality."}
[lux #*
- [control
+ [abstract
[functor (#+ Functor)]
[apply (#+ Apply)]
- ["." monad (#+ Monad do)]
+ ["." monad (#+ Monad do)]]
+ [control
["ex" exception (#+ exception:)]]
[data
["." maybe]
diff --git a/stdlib/source/lux/type/implicit.lux b/stdlib/source/lux/type/implicit.lux
index 36d9b2e03..d8ce47c2c 100644
--- a/stdlib/source/lux/type/implicit.lux
+++ b/stdlib/source/lux/type/implicit.lux
@@ -1,8 +1,9 @@
(.module:
[lux #*
- [control
+ [abstract
["." monad (#+ do Monad)]
- ["eq" equivalence]
+ ["eq" equivalence]]
+ [control
["p" parser]]
[data
["." product]
diff --git a/stdlib/source/lux/type/refinement.lux b/stdlib/source/lux/type/refinement.lux
index 2444878b4..1c428fc23 100644
--- a/stdlib/source/lux/type/refinement.lux
+++ b/stdlib/source/lux/type/refinement.lux
@@ -1,6 +1,6 @@
(.module:
[lux (#- type)
- [control
+ [abstract
[predicate (#+ Predicate)]]
[type (#+ :by-example) ("#;." equivalence)
abstract]])
diff --git a/stdlib/source/lux/type/resource.lux b/stdlib/source/lux/type/resource.lux
index affcf4cfc..22d83defd 100644
--- a/stdlib/source/lux/type/resource.lux
+++ b/stdlib/source/lux/type/resource.lux
@@ -1,10 +1,11 @@
(.module:
[lux #*
+ [abstract
+ ["." monad (#+ Monad do)
+ [indexed (#+ IxMonad)]]]
[control
["p" parser]
["ex" exception (#+ exception:)]
- ["." monad (#+ Monad do)
- [indexed (#+ IxMonad)]]
[concurrency
["." promise (#+ Promise)]]]
[data
diff --git a/stdlib/source/lux/type/unit.lux b/stdlib/source/lux/type/unit.lux
index d28f3e841..a05b7c85c 100644
--- a/stdlib/source/lux/type/unit.lux
+++ b/stdlib/source/lux/type/unit.lux
@@ -1,12 +1,13 @@
## TODO: Write tests ASAP.
(.module:
[lux #*
- [control
+ [abstract
[monad (#+ Monad do)]
- ["p" parser]
[equivalence (#+ Equivalence)]
[order (#+ Order)]
[enum (#+ Enum)]]
+ [control
+ ["p" parser]]
[data
[number
["r" ratio]]
diff --git a/stdlib/source/lux/world/binary.lux b/stdlib/source/lux/world/binary.lux
index e373937b9..f43edfa4f 100644
--- a/stdlib/source/lux/world/binary.lux
+++ b/stdlib/source/lux/world/binary.lux
@@ -1,9 +1,10 @@
(.module:
[lux (#- i64)
- [control
+ [abstract
[monad (#+ do)]
- ["ex" exception (#+ exception:)]
[equivalence (#+ Equivalence)]]
+ [control
+ ["ex" exception (#+ exception:)]]
[data
["." maybe]
["." error (#+ Error)]
diff --git a/stdlib/source/lux/world/file.lux b/stdlib/source/lux/world/file.lux
index 1ee35cd6f..c559c83e6 100644
--- a/stdlib/source/lux/world/file.lux
+++ b/stdlib/source/lux/world/file.lux
@@ -1,7 +1,8 @@
(.module:
[lux #*
+ [abstract
+ ["." monad (#+ Monad do)]]
[control
- ["." monad (#+ Monad do)]
["ex" exception (#+ Exception exception:)]
[concurrency
["." promise (#+ Promise)]]
diff --git a/stdlib/source/lux/world/net/tcp.jvm.lux b/stdlib/source/lux/world/net/tcp.jvm.lux
index d72e24763..f9c72bff3 100644
--- a/stdlib/source/lux/world/net/tcp.jvm.lux
+++ b/stdlib/source/lux/world/net/tcp.jvm.lux
@@ -1,7 +1,8 @@
(.module:
[lux #*
+ [abstract
+ monad]
[control
- monad
[concurrency
["." promise (#+ Promise Resolver)]
["." frp (#+ Channel Sink)]]
diff --git a/stdlib/source/lux/world/net/udp.jvm.lux b/stdlib/source/lux/world/net/udp.jvm.lux
index 01eb4772a..505871b56 100644
--- a/stdlib/source/lux/world/net/udp.jvm.lux
+++ b/stdlib/source/lux/world/net/udp.jvm.lux
@@ -1,7 +1,8 @@
(.module:
[lux #*
+ [abstract
+ monad]
[control
- monad
["ex" exception (#+ exception:)]
[concurrency
["." promise (#+ Promise)]]
diff --git a/stdlib/source/program/licentia.lux b/stdlib/source/program/licentia.lux
index 87ec7a9eb..482777503 100644
--- a/stdlib/source/program/licentia.lux
+++ b/stdlib/source/program/licentia.lux
@@ -13,9 +13,10 @@
(.module:
[lux #*
+ [abstract
+ [monad (#+ do)]]
[control
[remember (#+ to-do)]
- [monad (#+ do)]
["." parser]
[security
["!" capability]]]
diff --git a/stdlib/source/program/scriptum.lux b/stdlib/source/program/scriptum.lux
index 23b1d575b..37205402e 100644
--- a/stdlib/source/program/scriptum.lux
+++ b/stdlib/source/program/scriptum.lux
@@ -1,8 +1,9 @@
(.module:
[lux #*
+ [abstract
+ ["." monad (#+ do)]]
[control
[pipe (#+ when>)]
- ["." monad (#+ do)]
["ex" exception (#+ exception:)]
[security
["!" capability]]]
diff --git a/stdlib/source/test/licentia.lux b/stdlib/source/test/licentia.lux
index 1526b8a04..7f623d26d 100644
--- a/stdlib/source/test/licentia.lux
+++ b/stdlib/source/test/licentia.lux
@@ -2,9 +2,8 @@
[lux #*
[cli (#+ program:)]
["_" test (#+ Test)]
+ [abstract/monad (#+ do)]
[io (#+ io)]
- [control
- [monad (#+ do)]]
[data
["." bit ("#;." equivalence)]
["." maybe ("#;." functor)]
diff --git a/stdlib/source/test/lux.lux b/stdlib/source/test/lux.lux
index 4caf29c32..5b45d6e5e 100644
--- a/stdlib/source/test/lux.lux
+++ b/stdlib/source/test/lux.lux
@@ -12,7 +12,7 @@
["/" lux #*
[cli (#+ program:)]
["." io (#+ io)]
- [control
+ [abstract
[monad (#+ do)]
[predicate (#+ Predicate)]]
[data
@@ -112,6 +112,7 @@
["." / #_
["#." cli]
["#." io]
+ ["#." abstract]
["#." control]
["#." data]
["#." macro]
@@ -354,6 +355,8 @@
..cross-platform-support)
/cli.test
/io.test
+ (<| (_.context "/abstract")
+ /abstract.test)
(<| (_.context "/control")
/control.test)
(<| (_.context "/data")
diff --git a/stdlib/source/test/lux/abstract.lux b/stdlib/source/test/lux/abstract.lux
new file mode 100644
index 000000000..4d37ed458
--- /dev/null
+++ b/stdlib/source/test/lux/abstract.lux
@@ -0,0 +1,11 @@
+(.module:
+ [lux #*
+ ["_" test (#+ Test)]]
+ ["." / #_
+ ["#." interval]])
+
+(def: #export test
+ Test
+ ($_ _.and
+ /interval.test
+ ))
diff --git a/stdlib/source/test/lux/control/apply.lux b/stdlib/source/test/lux/abstract/apply.lux
index 881e5d127..a269810bb 100644
--- a/stdlib/source/test/lux/control/apply.lux
+++ b/stdlib/source/test/lux/abstract/apply.lux
@@ -1,7 +1,6 @@
(.module:
[lux #*
- [control
- [monad (#+ do)]]
+ [abstract/monad (#+ do)]
[data
[text
format]]
diff --git a/stdlib/source/test/lux/control/codec.lux b/stdlib/source/test/lux/abstract/codec.lux
index f8159838b..80203c237 100644
--- a/stdlib/source/test/lux/control/codec.lux
+++ b/stdlib/source/test/lux/abstract/codec.lux
@@ -1,8 +1,7 @@
(.module:
[lux #*
["_" test (#+ Test)]
- [control
- [monad (#+ do)]]
+ [abstract/monad (#+ do)]
[data
text/format
["." error]]
diff --git a/stdlib/source/test/lux/control/enum.lux b/stdlib/source/test/lux/abstract/enum.lux
index 5c7832260..63bbf97ad 100644
--- a/stdlib/source/test/lux/control/enum.lux
+++ b/stdlib/source/test/lux/abstract/enum.lux
@@ -3,8 +3,7 @@
data/text/format
["_" test (#+ Test)]
["." function]
- [control
- [monad (#+ do)]]
+ [abstract/monad (#+ do)]
[math
["r" random (#+ Random)]]]
{1
diff --git a/stdlib/source/test/lux/control/equivalence.lux b/stdlib/source/test/lux/abstract/equivalence.lux
index 3e3b91a04..d9e61131f 100644
--- a/stdlib/source/test/lux/control/equivalence.lux
+++ b/stdlib/source/test/lux/abstract/equivalence.lux
@@ -1,8 +1,7 @@
(.module:
[lux #*
["_" test (#+ Test)]
- [control
- [monad (#+ do)]]
+ [abstract/monad (#+ do)]
[data
[text
format]]
diff --git a/stdlib/source/test/lux/control/fold.lux b/stdlib/source/test/lux/abstract/fold.lux
index 7d7ea8d83..8dfe7fc4c 100644
--- a/stdlib/source/test/lux/control/fold.lux
+++ b/stdlib/source/test/lux/abstract/fold.lux
@@ -3,8 +3,7 @@
["_" test (#+ Test)]
data/text/format
["r" math/random]
- [control
- [monad (#+ do)]]]
+ [abstract/monad (#+ do)]]
[//
[functor (#+ Injection Comparison)]]
{1
diff --git a/stdlib/source/test/lux/control/functor.lux b/stdlib/source/test/lux/abstract/functor.lux
index 68c8db55b..cf3538575 100644
--- a/stdlib/source/test/lux/control/functor.lux
+++ b/stdlib/source/test/lux/abstract/functor.lux
@@ -3,7 +3,7 @@
["_" test (#+ Test)]
data/text/format
["r" math/random]
- [control
+ [abstract
[equivalence (#+ Equivalence)]
[monad (#+ do)]]
["." function]]
diff --git a/stdlib/source/test/lux/control/interval.lux b/stdlib/source/test/lux/abstract/interval.lux
index 7502f88bc..cfc19f6a9 100644
--- a/stdlib/source/test/lux/control/interval.lux
+++ b/stdlib/source/test/lux/abstract/interval.lux
@@ -1,9 +1,13 @@
(.module:
[lux #*
["_" test (#+ Test)]
+ [abstract/monad (#+ do)]
+ [abstract
+ {[0 #test]
+ [/
+ ["$." equivalence]]}]
[control
- [pipe (#+ case>)]
- [monad (#+ do)]]
+ [pipe (#+ case>)]]
[data
[number
["." nat]]
@@ -15,12 +19,7 @@
[math
["r" random (#+ Random)]]]
{1
- ["." / (#+ Interval) ("_@." equivalence)]}
- {0
- [test
- [lux
- [control
- ["$." equivalence]]]]})
+ ["." / (#+ Interval) ("_@." equivalence)]})
(template [<name> <cmp>]
[(def: #export <name>
diff --git a/stdlib/source/test/lux/control/monad.lux b/stdlib/source/test/lux/abstract/monad.lux
index 4382a260d..4382a260d 100644
--- a/stdlib/source/test/lux/control/monad.lux
+++ b/stdlib/source/test/lux/abstract/monad.lux
diff --git a/stdlib/source/test/lux/control/monoid.lux b/stdlib/source/test/lux/abstract/monoid.lux
index b12262900..b526c3e58 100644
--- a/stdlib/source/test/lux/control/monoid.lux
+++ b/stdlib/source/test/lux/abstract/monoid.lux
@@ -3,8 +3,7 @@
data/text/format
["_" test (#+ Test)]
["." function]
- [control
- [monad (#+ do)]]
+ [abstract/monad (#+ do)]
[math
["r" random (#+ Random)]]]
{1
diff --git a/stdlib/source/test/lux/control/number.lux b/stdlib/source/test/lux/abstract/number.lux
index 57bee6ee3..2d726dfed 100644
--- a/stdlib/source/test/lux/control/number.lux
+++ b/stdlib/source/test/lux/abstract/number.lux
@@ -1,8 +1,7 @@
(.module:
[lux #*
["_" test (#+ Test)]
- [control
- [monad (#+ do)]]
+ [abstract/monad (#+ do)]
[data
[text
format]]
diff --git a/stdlib/source/test/lux/control/order.lux b/stdlib/source/test/lux/abstract/order.lux
index f18d110c2..535d774a7 100644
--- a/stdlib/source/test/lux/control/order.lux
+++ b/stdlib/source/test/lux/abstract/order.lux
@@ -1,8 +1,7 @@
(.module:
[lux #*
["_" test (#+ Test)]
- [control
- [monad (#+ do)]]
+ [abstract/monad (#+ do)]
[data
[text
format]]
diff --git a/stdlib/source/test/lux/cli.lux b/stdlib/source/test/lux/cli.lux
index 361b447ee..ff7a3abb3 100644
--- a/stdlib/source/test/lux/cli.lux
+++ b/stdlib/source/test/lux/cli.lux
@@ -1,10 +1,10 @@
(.module:
[lux #*
data/text/format
+ ["M" abstract/monad (#+ Monad do)]
["_" test (#+ Test)]
["r" math/random]
[control
- ["M" monad (#+ Monad do)]
pipe
["p" parser]]
[data
diff --git a/stdlib/source/test/lux/control.lux b/stdlib/source/test/lux/control.lux
index 912729c42..341a119fe 100644
--- a/stdlib/source/test/lux/control.lux
+++ b/stdlib/source/test/lux/control.lux
@@ -4,7 +4,6 @@
["." / #_
["#." continuation]
["#." exception]
- ["#." interval]
["#." parser]
["#." pipe]
["#." reader]
@@ -44,7 +43,6 @@
($_ _.and
/continuation.test
/exception.test
- /interval.test
/parser.test
(<| (_.context "/pipe")
/pipe.test)
diff --git a/stdlib/source/test/lux/control/concurrency/actor.lux b/stdlib/source/test/lux/control/concurrency/actor.lux
index 014e4d758..eff4d051d 100644
--- a/stdlib/source/test/lux/control/concurrency/actor.lux
+++ b/stdlib/source/test/lux/control/concurrency/actor.lux
@@ -2,8 +2,8 @@
[lux #*
["_" test (#+ Test)]
["." io (#+ IO io)]
+ [abstract/monad (#+ do)]
[control
- ["M" monad (#+ do Monad)]
["ex" exception]
[concurrency
["." promise ("#;." monad)]]]
diff --git a/stdlib/source/test/lux/control/concurrency/atom.lux b/stdlib/source/test/lux/control/concurrency/atom.lux
index 29cc28ad4..455f8b00d 100644
--- a/stdlib/source/test/lux/control/concurrency/atom.lux
+++ b/stdlib/source/test/lux/control/concurrency/atom.lux
@@ -2,8 +2,7 @@
[lux #*
["_" test (#+ Test)]
["." io]
- [control
- [monad (#+ do)]]
+ [abstract/monad (#+ do)]
data/text/format
[math
["r" random]]]
diff --git a/stdlib/source/test/lux/control/concurrency/frp.lux b/stdlib/source/test/lux/control/concurrency/frp.lux
index 92e4838a8..7ac79b465 100644
--- a/stdlib/source/test/lux/control/concurrency/frp.lux
+++ b/stdlib/source/test/lux/control/concurrency/frp.lux
@@ -2,8 +2,8 @@
[lux #*
["_" test (#+ Test)]
["." io (#+ IO io)]
+ [abstract/monad (#+ do)]
[control
- ["." monad (#+ do)]
[concurrency
["." promise ("#@." monad)]
["." atom (#+ Atom atom)]]]
diff --git a/stdlib/source/test/lux/control/concurrency/promise.lux b/stdlib/source/test/lux/control/concurrency/promise.lux
index 952e8fb7a..5a49f26fe 100644
--- a/stdlib/source/test/lux/control/concurrency/promise.lux
+++ b/stdlib/source/test/lux/control/concurrency/promise.lux
@@ -2,8 +2,8 @@
[lux #*
["_" test (#+ Test)]
["." io]
+ [abstract/monad (#+ do)]
[control
- [monad (#+ Monad do)]
pipe]
data/text/format
[math
diff --git a/stdlib/source/test/lux/control/concurrency/semaphore.lux b/stdlib/source/test/lux/control/concurrency/semaphore.lux
index 4aa4b08a5..40bd81364 100644
--- a/stdlib/source/test/lux/control/concurrency/semaphore.lux
+++ b/stdlib/source/test/lux/control/concurrency/semaphore.lux
@@ -1,7 +1,8 @@
(.module:
[lux #*
+ [abstract
+ ["." monad (#+ do)]]
[control
- ["." monad (#+ do)]
[concurrency
["/" semaphore]
["." promise (#+ Promise)]
diff --git a/stdlib/source/test/lux/control/concurrency/stm.lux b/stdlib/source/test/lux/control/concurrency/stm.lux
index 52107f6fe..9e3b9290c 100644
--- a/stdlib/source/test/lux/control/concurrency/stm.lux
+++ b/stdlib/source/test/lux/control/concurrency/stm.lux
@@ -2,8 +2,8 @@
[lux #*
["_" test (#+ Test)]
["." io (#+ IO)]
+ ["M" abstract/monad (#+ do Monad)]
[control
- ["M" monad (#+ do Monad)]
[concurrency
["." atom (#+ Atom atom)]
["." process]
diff --git a/stdlib/source/test/lux/control/continuation.lux b/stdlib/source/test/lux/control/continuation.lux
index b676c67ff..571225ecc 100644
--- a/stdlib/source/test/lux/control/continuation.lux
+++ b/stdlib/source/test/lux/control/continuation.lux
@@ -1,7 +1,7 @@
(.module:
[lux #*
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/control/exception.lux b/stdlib/source/test/lux/control/exception.lux
index c56688af3..7b7d90dbf 100644
--- a/stdlib/source/test/lux/control/exception.lux
+++ b/stdlib/source/test/lux/control/exception.lux
@@ -1,7 +1,6 @@
(.module:
[lux #*
- [control
- [monad (#+ do)]]
+ [abstract/monad (#+ do)]
[data
[text
format]]
diff --git a/stdlib/source/test/lux/control/parser.lux b/stdlib/source/test/lux/control/parser.lux
index a5d8fb0c2..da6c0a381 100644
--- a/stdlib/source/test/lux/control/parser.lux
+++ b/stdlib/source/test/lux/control/parser.lux
@@ -1,7 +1,7 @@
(.module:
[lux #*
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
[equivalence (#+ Equivalence)]
{[0 #test]
diff --git a/stdlib/source/test/lux/control/pipe.lux b/stdlib/source/test/lux/control/pipe.lux
index fda914291..6f7b65a53 100644
--- a/stdlib/source/test/lux/control/pipe.lux
+++ b/stdlib/source/test/lux/control/pipe.lux
@@ -1,7 +1,7 @@
(.module:
[lux #*
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]]
[data
["." identity]
diff --git a/stdlib/source/test/lux/control/reader.lux b/stdlib/source/test/lux/control/reader.lux
index 59763c0e8..aa639ce70 100644
--- a/stdlib/source/test/lux/control/reader.lux
+++ b/stdlib/source/test/lux/control/reader.lux
@@ -2,7 +2,7 @@
[lux #*
["." io (#+ IO)]
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/control/region.lux b/stdlib/source/test/lux/control/region.lux
index cca103eac..a575e4250 100644
--- a/stdlib/source/test/lux/control/region.lux
+++ b/stdlib/source/test/lux/control/region.lux
@@ -1,8 +1,9 @@
(.module:
[lux #*
["_" test (#+ Test)]
+ [abstract
+ ["." monad (#+ do)]]
[control
- ["." monad (#+ do)]
["." thread (#+ Thread)]
["ex" exception (#+ exception:)]]
[data
diff --git a/stdlib/source/test/lux/control/security/integrity.lux b/stdlib/source/test/lux/control/security/integrity.lux
index ad9b67f4f..77e0505d6 100644
--- a/stdlib/source/test/lux/control/security/integrity.lux
+++ b/stdlib/source/test/lux/control/security/integrity.lux
@@ -1,7 +1,7 @@
(.module:
[lux #*
["_" test (#+ Test)]
- [control
+ [abstract
[hash (#+ Hash)]
[monad (#+ do)]
{[0 #test]
diff --git a/stdlib/source/test/lux/control/security/privacy.lux b/stdlib/source/test/lux/control/security/privacy.lux
index 3bc41e6a9..3b167e0d2 100644
--- a/stdlib/source/test/lux/control/security/privacy.lux
+++ b/stdlib/source/test/lux/control/security/privacy.lux
@@ -1,16 +1,17 @@
(.module:
[lux #*
["_" test (#+ Test)]
- [control
+ [abstract
[hash (#+ Hash)]
[monad (#+ do)]
- [security
- ["!" capability]]
{[0 #test]
[/
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]]}]
+ [control
+ [security
+ ["!" capability]]]
[data
["." text ("#;." equivalence)
format]]
diff --git a/stdlib/source/test/lux/control/state.lux b/stdlib/source/test/lux/control/state.lux
index 8bae5e472..808d5ebb2 100644
--- a/stdlib/source/test/lux/control/state.lux
+++ b/stdlib/source/test/lux/control/state.lux
@@ -2,14 +2,15 @@
[lux #*
["_" test (#+ Test)]
["." io]
- [control
- [pipe (#+ let>)]
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]]}]
+ [control
+ [pipe (#+ let>)]]
[data
["." product]
[text
diff --git a/stdlib/source/test/lux/control/thread.lux b/stdlib/source/test/lux/control/thread.lux
index a6f28e428..56d3a7d5c 100644
--- a/stdlib/source/test/lux/control/thread.lux
+++ b/stdlib/source/test/lux/control/thread.lux
@@ -1,7 +1,7 @@
(.module:
[lux #*
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/control/writer.lux b/stdlib/source/test/lux/control/writer.lux
index dfd3b4a10..392fc7a4b 100644
--- a/stdlib/source/test/lux/control/writer.lux
+++ b/stdlib/source/test/lux/control/writer.lux
@@ -2,7 +2,7 @@
[lux #*
["_" test (#+ Test)]
["." io]
- [control
+ [abstract
[equivalence (#+ Equivalence)]
[monoid (#+ Monoid)]
[monad (#+ do)]
diff --git a/stdlib/source/test/lux/data/bit.lux b/stdlib/source/test/lux/data/bit.lux
index f6ad5e727..9515fa5ce 100644
--- a/stdlib/source/test/lux/data/bit.lux
+++ b/stdlib/source/test/lux/data/bit.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
["r" math/random]
["." function]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/data/collection/array.lux b/stdlib/source/test/lux/data/collection/array.lux
index 8814a6e88..c210a9163 100644
--- a/stdlib/source/test/lux/data/collection/array.lux
+++ b/stdlib/source/test/lux/data/collection/array.lux
@@ -2,8 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
- pipe
+ [abstract
[monad (#+ do Monad)]
{[0 #test]
[/
@@ -11,6 +10,8 @@
["$." monoid]
["$." fold]
["$." functor (#+ Injection)]]}]
+ [control
+ pipe]
[data
["." maybe]
[number
diff --git a/stdlib/source/test/lux/data/collection/bits.lux b/stdlib/source/test/lux/data/collection/bits.lux
index ac7e983f9..a727761ca 100644
--- a/stdlib/source/test/lux/data/collection/bits.lux
+++ b/stdlib/source/test/lux/data/collection/bits.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
["." predicate]
{[0 #test]
diff --git a/stdlib/source/test/lux/data/collection/dictionary.lux b/stdlib/source/test/lux/data/collection/dictionary.lux
index e559a2453..863c47973 100644
--- a/stdlib/source/test/lux/data/collection/dictionary.lux
+++ b/stdlib/source/test/lux/data/collection/dictionary.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
["eq" equivalence]
{[0 #test]
diff --git a/stdlib/source/test/lux/data/collection/dictionary/ordered.lux b/stdlib/source/test/lux/data/collection/dictionary/ordered.lux
index 4cd7880ba..57dab9884 100644
--- a/stdlib/source/test/lux/data/collection/dictionary/ordered.lux
+++ b/stdlib/source/test/lux/data/collection/dictionary/ordered.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
[equivalence (#+ Equivalence)]
[order (#+ Order)]
diff --git a/stdlib/source/test/lux/data/collection/list.lux b/stdlib/source/test/lux/data/collection/list.lux
index 958025e8b..247b2de78 100644
--- a/stdlib/source/test/lux/data/collection/list.lux
+++ b/stdlib/source/test/lux/data/collection/list.lux
@@ -3,8 +3,7 @@
data/text/format
["_" test (#+ Test)]
["." io]
- [control
- pipe
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
@@ -14,6 +13,8 @@
["$." functor]
["$." apply]
["$." monad]]}]
+ [control
+ pipe]
[data
["." bit]
["." product]
diff --git a/stdlib/source/test/lux/data/collection/queue.lux b/stdlib/source/test/lux/data/collection/queue.lux
index c377fccc3..506cf15e3 100644
--- a/stdlib/source/test/lux/data/collection/queue.lux
+++ b/stdlib/source/test/lux/data/collection/queue.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/data/collection/queue/priority.lux b/stdlib/source/test/lux/data/collection/queue/priority.lux
index df24b8368..4c4f2923a 100644
--- a/stdlib/source/test/lux/data/collection/queue/priority.lux
+++ b/stdlib/source/test/lux/data/collection/queue/priority.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
["." monad (#+ do)]]
[data
["." maybe]
diff --git a/stdlib/source/test/lux/data/collection/row.lux b/stdlib/source/test/lux/data/collection/row.lux
index 1fa55e135..15085776b 100644
--- a/stdlib/source/test/lux/data/collection/row.lux
+++ b/stdlib/source/test/lux/data/collection/row.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/data/collection/sequence.lux b/stdlib/source/test/lux/data/collection/sequence.lux
index edacef996..6b4529dfc 100644
--- a/stdlib/source/test/lux/data/collection/sequence.lux
+++ b/stdlib/source/test/lux/data/collection/sequence.lux
@@ -2,9 +2,9 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
comonad
- [monad (#+ do Monad)]]
+ [monad (#+ do)]]
[data
["." maybe]
[number
diff --git a/stdlib/source/test/lux/data/collection/set.lux b/stdlib/source/test/lux/data/collection/set.lux
index f319af295..f272cf305 100644
--- a/stdlib/source/test/lux/data/collection/set.lux
+++ b/stdlib/source/test/lux/data/collection/set.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/data/collection/set/ordered.lux b/stdlib/source/test/lux/data/collection/set/ordered.lux
index 7f143a9cd..4bddfaf33 100644
--- a/stdlib/source/test/lux/data/collection/set/ordered.lux
+++ b/stdlib/source/test/lux/data/collection/set/ordered.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
[order (#+ Order)]
{[0 #test]
diff --git a/stdlib/source/test/lux/data/collection/stack.lux b/stdlib/source/test/lux/data/collection/stack.lux
index 2886fa815..05b8efc47 100644
--- a/stdlib/source/test/lux/data/collection/stack.lux
+++ b/stdlib/source/test/lux/data/collection/stack.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/data/collection/tree/rose.lux b/stdlib/source/test/lux/data/collection/tree/rose.lux
index 987a72f45..65b46e382 100644
--- a/stdlib/source/test/lux/data/collection/tree/rose.lux
+++ b/stdlib/source/test/lux/data/collection/tree/rose.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/data/collection/tree/rose/zipper.lux b/stdlib/source/test/lux/data/collection/tree/rose/zipper.lux
index 3a3bd296c..e8f59a43a 100644
--- a/stdlib/source/test/lux/data/collection/tree/rose/zipper.lux
+++ b/stdlib/source/test/lux/data/collection/tree/rose/zipper.lux
@@ -2,8 +2,8 @@
[lux #*
data/text/format
["_" test (#+ Test)]
+ [abstract/monad (#+ do Monad)]
[control
- [monad (#+ do Monad)]
pipe]
[data
["." maybe]
diff --git a/stdlib/source/test/lux/data/color.lux b/stdlib/source/test/lux/data/color.lux
index f3db0c6f7..a8a61cb46 100644
--- a/stdlib/source/test/lux/data/color.lux
+++ b/stdlib/source/test/lux/data/color.lux
@@ -1,7 +1,7 @@
(.module:
[lux #*
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/data/error.lux b/stdlib/source/test/lux/data/error.lux
index c60c6563a..8f89ccb8f 100644
--- a/stdlib/source/test/lux/data/error.lux
+++ b/stdlib/source/test/lux/data/error.lux
@@ -2,8 +2,7 @@
[lux #*
["_" test (#+ Test)]
["." io]
- [control
- pipe
+ [abstract
[monad (#+ do Monad)]
{[0 #test]
[/
@@ -11,6 +10,8 @@
["$." apply]
["$." monad]
["$." equivalence]]}]
+ [control
+ pipe]
[data
text/format
[number
diff --git a/stdlib/source/test/lux/data/format/json.lux b/stdlib/source/test/lux/data/format/json.lux
index f276c5180..c2826143a 100644
--- a/stdlib/source/test/lux/data/format/json.lux
+++ b/stdlib/source/test/lux/data/format/json.lux
@@ -2,16 +2,17 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
- pipe
+ [abstract
codec
[monad (#+ do Monad)]
[equivalence (#+ Equivalence)]
- ["p" parser]
{[0 #test]
[/
["$." equivalence]
["$." codec]]}]
+ [control
+ pipe
+ ["p" parser]]
[data
["." error]
["." bit]
diff --git a/stdlib/source/test/lux/data/format/xml.lux b/stdlib/source/test/lux/data/format/xml.lux
index 221edba97..cf2b10f65 100644
--- a/stdlib/source/test/lux/data/format/xml.lux
+++ b/stdlib/source/test/lux/data/format/xml.lux
@@ -2,14 +2,15 @@
[lux (#- char)
data/text/format
["_" test (#+ Test)]
- [control
- pipe
+ [abstract
[monad (#+ Monad do)]
- ["p" parser]
{[0 #test]
[/
["$." equivalence]
["$." codec]]}]
+ [control
+ pipe
+ ["p" parser]]
[data
["." name]
["E" error]
diff --git a/stdlib/source/test/lux/data/identity.lux b/stdlib/source/test/lux/data/identity.lux
index ef4450c50..38d20a7d5 100644
--- a/stdlib/source/test/lux/data/identity.lux
+++ b/stdlib/source/test/lux/data/identity.lux
@@ -1,7 +1,7 @@
(.module:
[lux #*
["_" test (#+ Test)]
- [control
+ [abstract
comonad
[monad (#+ do)]
{[0 #test]
diff --git a/stdlib/source/test/lux/data/lazy.lux b/stdlib/source/test/lux/data/lazy.lux
index 44c0ff2da..62b1273e4 100644
--- a/stdlib/source/test/lux/data/lazy.lux
+++ b/stdlib/source/test/lux/data/lazy.lux
@@ -1,7 +1,7 @@
(.module:
[lux #*
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/data/maybe.lux b/stdlib/source/test/lux/data/maybe.lux
index 4aa89f85f..dc6ca1d56 100644
--- a/stdlib/source/test/lux/data/maybe.lux
+++ b/stdlib/source/test/lux/data/maybe.lux
@@ -1,8 +1,7 @@
(.module:
[lux #*
["_" test (#+ Test)]
- [control
- pipe
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
@@ -10,6 +9,8 @@
["$." functor]
["$." apply]
["$." monad]]}]
+ [control
+ pipe]
[data
["." text
format]
diff --git a/stdlib/source/test/lux/data/name.lux b/stdlib/source/test/lux/data/name.lux
index a42684938..d9ee517d0 100644
--- a/stdlib/source/test/lux/data/name.lux
+++ b/stdlib/source/test/lux/data/name.lux
@@ -1,13 +1,14 @@
(.module:
[lux #*
["_" test (#+ Test)]
- [control
- pipe
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
["$." equivalence]
["$." codec]]}]
+ [control
+ pipe]
[data
["." text ("#@." equivalence)
format]]
diff --git a/stdlib/source/test/lux/data/number/complex.lux b/stdlib/source/test/lux/data/number/complex.lux
index a1fc7beca..8eed3e865 100644
--- a/stdlib/source/test/lux/data/number/complex.lux
+++ b/stdlib/source/test/lux/data/number/complex.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/data/number/frac.lux b/stdlib/source/test/lux/data/number/frac.lux
index 89ff72749..544ab858c 100644
--- a/stdlib/source/test/lux/data/number/frac.lux
+++ b/stdlib/source/test/lux/data/number/frac.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/data/number/i64.lux b/stdlib/source/test/lux/data/number/i64.lux
index 3e251d1e6..1519b1e48 100644
--- a/stdlib/source/test/lux/data/number/i64.lux
+++ b/stdlib/source/test/lux/data/number/i64.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/data/number/int.lux b/stdlib/source/test/lux/data/number/int.lux
index e11685580..5b0d523ae 100644
--- a/stdlib/source/test/lux/data/number/int.lux
+++ b/stdlib/source/test/lux/data/number/int.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/data/number/nat.lux b/stdlib/source/test/lux/data/number/nat.lux
index 9616e9bd6..4c46b4b0c 100644
--- a/stdlib/source/test/lux/data/number/nat.lux
+++ b/stdlib/source/test/lux/data/number/nat.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/data/number/ratio.lux b/stdlib/source/test/lux/data/number/ratio.lux
index c3c67c317..f0ce55751 100644
--- a/stdlib/source/test/lux/data/number/ratio.lux
+++ b/stdlib/source/test/lux/data/number/ratio.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/data/number/rev.lux b/stdlib/source/test/lux/data/number/rev.lux
index 15b98ffe6..308861368 100644
--- a/stdlib/source/test/lux/data/number/rev.lux
+++ b/stdlib/source/test/lux/data/number/rev.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/data/text.lux b/stdlib/source/test/lux/data/text.lux
index e3166dcd9..20ad838b7 100644
--- a/stdlib/source/test/lux/data/text.lux
+++ b/stdlib/source/test/lux/data/text.lux
@@ -2,13 +2,14 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
- pipe
+ [abstract
[monad (#+ do Monad)]
{[0 #test]
[/
["$." equivalence]
["$." order]]}]
+ [control
+ pipe]
[data
[collection
["." list]]]
diff --git a/stdlib/source/test/lux/data/text/lexer.lux b/stdlib/source/test/lux/data/text/lexer.lux
index b15a86846..3693b0fd0 100644
--- a/stdlib/source/test/lux/data/text/lexer.lux
+++ b/stdlib/source/test/lux/data/text/lexer.lux
@@ -2,9 +2,9 @@
[lux #*
data/text/format
["_" test (#+ Test)]
+ [abstract/monad (#+ do)]
[control
pipe
- [monad (#+ do Monad)]
["p" parser]]
[data
["." error (#+ Error)]
diff --git a/stdlib/source/test/lux/data/text/regex.lux b/stdlib/source/test/lux/data/text/regex.lux
index 059adff84..58ef21b8b 100644
--- a/stdlib/source/test/lux/data/text/regex.lux
+++ b/stdlib/source/test/lux/data/text/regex.lux
@@ -2,8 +2,8 @@
[lux #*
data/text/format
["_" test (#+ Test)]
+ [abstract/monad (#+ do)]
[control
- [monad (#+ do Monad)]
pipe
["p" parser]]
[data
diff --git a/stdlib/source/test/lux/host.jvm.lux b/stdlib/source/test/lux/host.jvm.lux
index 9bd0f5399..04c149881 100644
--- a/stdlib/source/test/lux/host.jvm.lux
+++ b/stdlib/source/test/lux/host.jvm.lux
@@ -1,7 +1,7 @@
(.module:
[lux #*
+ [abstract/monad (#+ Monad do)]
[control
- [monad (#+ Monad do)]
pipe]
[data
["." text ("#;." equivalence)]]
diff --git a/stdlib/source/test/lux/host/jvm.jvm.lux b/stdlib/source/test/lux/host/jvm.jvm.lux
index b0655ebd3..16c4aea90 100644
--- a/stdlib/source/test/lux/host/jvm.jvm.lux
+++ b/stdlib/source/test/lux/host/jvm.jvm.lux
@@ -1,7 +1,7 @@
(.module:
[lux #*
+ [abstract/monad (#+ do)]
[control
- [monad (#+ do)]
[concurrency
["." atom]]
[security
diff --git a/stdlib/source/test/lux/io.lux b/stdlib/source/test/lux/io.lux
index 504c9bb9c..3b00ceb3f 100644
--- a/stdlib/source/test/lux/io.lux
+++ b/stdlib/source/test/lux/io.lux
@@ -3,7 +3,7 @@
data/text/format
["_" test (#+ Test)]
["r" math/random]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/macro.lux b/stdlib/source/test/lux/macro.lux
index d7389dd20..acd4bcdac 100644
--- a/stdlib/source/test/lux/macro.lux
+++ b/stdlib/source/test/lux/macro.lux
@@ -1,7 +1,7 @@
(.module:
[lux #*
data/text/format
- [control/monad (#+ do)]
+ [abstract/monad (#+ do)]
["r" math/random (#+ Random)]
["_" test (#+ Test)]]
{1
diff --git a/stdlib/source/test/lux/macro/code.lux b/stdlib/source/test/lux/macro/code.lux
index c400bf206..c8d0b8077 100644
--- a/stdlib/source/test/lux/macro/code.lux
+++ b/stdlib/source/test/lux/macro/code.lux
@@ -1,7 +1,7 @@
(.module:
[lux #*
data/text/format
- [control/monad (#+ do)]
+ [abstract/monad (#+ do)]
["r" math/random (#+ Random)]
["_" test (#+ Test)]
[data
diff --git a/stdlib/source/test/lux/macro/poly/equivalence.lux b/stdlib/source/test/lux/macro/poly/equivalence.lux
index 41ae1ecd0..4024d0a89 100644
--- a/stdlib/source/test/lux/macro/poly/equivalence.lux
+++ b/stdlib/source/test/lux/macro/poly/equivalence.lux
@@ -3,8 +3,8 @@
data/text/format
["r" math/random (#+ Random)]
["_" test (#+ Test)]
- [control ["." monad (#+ do)]]
- [control
+ [abstract/monad (#+ do)]
+ [abstract
[equivalence (#+ Equivalence)]]
[data
["." bit]
diff --git a/stdlib/source/test/lux/macro/poly/functor.lux b/stdlib/source/test/lux/macro/poly/functor.lux
index 5b477682d..7f47148ab 100644
--- a/stdlib/source/test/lux/macro/poly/functor.lux
+++ b/stdlib/source/test/lux/macro/poly/functor.lux
@@ -1,7 +1,7 @@
(.module:
[lux #*
data/text/format
- [control/monad (#+ do)]
+ [abstract/monad (#+ do)]
["r" math/random (#+ Random)]
["_" test (#+ Test)]
[control
diff --git a/stdlib/source/test/lux/macro/poly/json.lux b/stdlib/source/test/lux/macro/poly/json.lux
index 2669b9801..1209aa90a 100644
--- a/stdlib/source/test/lux/macro/poly/json.lux
+++ b/stdlib/source/test/lux/macro/poly/json.lux
@@ -2,16 +2,17 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
- pipe
+ [abstract
codec
[monad (#+ do Monad)]
[equivalence (#+ Equivalence)]
- ["p" parser]
{[0 #test]
[/
["$." equivalence]
["$." codec]]}]
+ [control
+ pipe
+ ["p" parser]]
[data
["." error]
["." bit]
diff --git a/stdlib/source/test/lux/macro/syntax.lux b/stdlib/source/test/lux/macro/syntax.lux
index 60dd38b6e..92ba86d4d 100644
--- a/stdlib/source/test/lux/macro/syntax.lux
+++ b/stdlib/source/test/lux/macro/syntax.lux
@@ -1,11 +1,12 @@
(.module:
[lux #*
data/text/format
- [control/monad (#+ do)]
+ [abstract/monad (#+ do)]
["r" math/random (#+ Random)]
["_" test (#+ Test)]
+ [abstract
+ [equivalence (#+ Equivalence)]]
[control
- [equivalence (#+ Equivalence)]
["p" parser]]
[data
["." bit]
diff --git a/stdlib/source/test/lux/math.lux b/stdlib/source/test/lux/math.lux
index a659e8095..fcd4a1134 100644
--- a/stdlib/source/test/lux/math.lux
+++ b/stdlib/source/test/lux/math.lux
@@ -3,8 +3,7 @@
data/text/format
["_" test (#+ Test)]
["r" math/random (#+ Random)]
- [control
- [monad (#+ Monad do)]]
+ [abstract/monad (#+ Monad do)]
[data
["." bit ("#@." equivalence)]
[number
diff --git a/stdlib/source/test/lux/math/infix.lux b/stdlib/source/test/lux/math/infix.lux
index 59a44022a..db40f693c 100644
--- a/stdlib/source/test/lux/math/infix.lux
+++ b/stdlib/source/test/lux/math/infix.lux
@@ -1,7 +1,7 @@
(.module:
[lux #*
data/text/format
- [control/monad (#+ do)]
+ [abstract/monad (#+ do)]
["r" math/random]
["_" test (#+ Test)]
[data
diff --git a/stdlib/source/test/lux/math/logic/continuous.lux b/stdlib/source/test/lux/math/logic/continuous.lux
index 214a3c041..82ad36be0 100644
--- a/stdlib/source/test/lux/math/logic/continuous.lux
+++ b/stdlib/source/test/lux/math/logic/continuous.lux
@@ -1,7 +1,7 @@
(.module:
[lux #*
data/text/format
- [control/monad (#+ do)]
+ [abstract/monad (#+ do)]
["r" math/random]
["_" test (#+ Test)]]
{1
diff --git a/stdlib/source/test/lux/math/logic/fuzzy.lux b/stdlib/source/test/lux/math/logic/fuzzy.lux
index e75268bf0..10b75195a 100644
--- a/stdlib/source/test/lux/math/logic/fuzzy.lux
+++ b/stdlib/source/test/lux/math/logic/fuzzy.lux
@@ -1,7 +1,7 @@
(.module:
[lux #*
data/text/format
- [control/monad (#+ do)]
+ [abstract/monad (#+ do)]
["r" math/random (#+ Random)]
["_" test (#+ Test)]
[data
diff --git a/stdlib/source/test/lux/math/modular.lux b/stdlib/source/test/lux/math/modular.lux
index 97655ee9b..5d929527e 100644
--- a/stdlib/source/test/lux/math/modular.lux
+++ b/stdlib/source/test/lux/math/modular.lux
@@ -3,7 +3,7 @@
data/text/format
["_" test (#+ Test)]
["r" math/random]
- [control/monad (#+ do)]
+ [abstract/monad (#+ do)]
[data
["." product]
["." bit ("#@." equivalence)]
diff --git a/stdlib/source/test/lux/time/date.lux b/stdlib/source/test/lux/time/date.lux
index ffd055e35..483b51388 100644
--- a/stdlib/source/test/lux/time/date.lux
+++ b/stdlib/source/test/lux/time/date.lux
@@ -3,7 +3,8 @@
data/text/format
["r" math/random (#+ Random)]
["_" test (#+ Test)]
- [control ["." monad (#+ do)]
+ [abstract
+ ["." monad (#+ do)]
{[0 #test]
[/
["$." equivalence]
diff --git a/stdlib/source/test/lux/time/day.lux b/stdlib/source/test/lux/time/day.lux
index 84d404a21..4df0ad30b 100644
--- a/stdlib/source/test/lux/time/day.lux
+++ b/stdlib/source/test/lux/time/day.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
{[0 #test]
[/
["$." equivalence]
diff --git a/stdlib/source/test/lux/time/duration.lux b/stdlib/source/test/lux/time/duration.lux
index a7265f62f..e63397b32 100644
--- a/stdlib/source/test/lux/time/duration.lux
+++ b/stdlib/source/test/lux/time/duration.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
[monad (#+ do)]
{[0 #test]
[/
diff --git a/stdlib/source/test/lux/time/instant.lux b/stdlib/source/test/lux/time/instant.lux
index 9b903d993..24f7e7962 100644
--- a/stdlib/source/test/lux/time/instant.lux
+++ b/stdlib/source/test/lux/time/instant.lux
@@ -2,8 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
- pipe
+ [abstract
[monad (#+ do Monad)]
{[0 #test]
[/
@@ -11,6 +10,8 @@
["$." order]
["$." enum]
["$." codec]]}]
+ [control
+ pipe]
[data
["." text]]
[math
diff --git a/stdlib/source/test/lux/time/month.lux b/stdlib/source/test/lux/time/month.lux
index f0722af0b..7b0cb43d2 100644
--- a/stdlib/source/test/lux/time/month.lux
+++ b/stdlib/source/test/lux/time/month.lux
@@ -2,7 +2,7 @@
[lux #*
data/text/format
["_" test (#+ Test)]
- [control
+ [abstract
{[0 #test]
[/
["$." equivalence]
diff --git a/stdlib/source/test/lux/type.lux b/stdlib/source/test/lux/type.lux
index 96478b077..6840807f7 100644
--- a/stdlib/source/test/lux/type.lux
+++ b/stdlib/source/test/lux/type.lux
@@ -1,7 +1,7 @@
(.module:
[lux (#- type)
data/text/format
- ["M" control/monad (#+ do)]
+ ["M" abstract/monad (#+ do)]
["r" math/random (#+ Random)]
["_" test (#+ Test)]
[control
diff --git a/stdlib/source/test/lux/type/check.lux b/stdlib/source/test/lux/type/check.lux
index d73b2783d..9d511d5ae 100644
--- a/stdlib/source/test/lux/type/check.lux
+++ b/stdlib/source/test/lux/type/check.lux
@@ -1,9 +1,10 @@
(.module:
[lux (#- type)
data/text/format
- [control ["." monad (#+ do)]]
["r" math/random (#+ Random)]
["_" test (#+ Test)]
+ [abstract
+ ["." monad (#+ do)]]
[control
[pipe (#+ case>)]]
[data
diff --git a/stdlib/source/test/lux/type/dynamic.lux b/stdlib/source/test/lux/type/dynamic.lux
index e2564627a..4e1bea6a8 100644
--- a/stdlib/source/test/lux/type/dynamic.lux
+++ b/stdlib/source/test/lux/type/dynamic.lux
@@ -1,9 +1,9 @@
(.module:
[lux #*
data/text/format
+ [abstract/monad (#+ do)]
["r" math/random (#+ Random)]
["_" test (#+ Test)]
- [control ["." monad (#+ do)]]
[data
["." error]]]
{1
diff --git a/stdlib/source/test/lux/type/implicit.lux b/stdlib/source/test/lux/type/implicit.lux
index 5383c252f..372f544f7 100644
--- a/stdlib/source/test/lux/type/implicit.lux
+++ b/stdlib/source/test/lux/type/implicit.lux
@@ -3,8 +3,8 @@
data/text/format
["r" math/random (#+ Random)]
["_" test (#+ Test)]
- [control ["." monad (#+ do)]]
- [control
+ [abstract/monad (#+ do)]
+ [abstract
[equivalence (#+)]
[functor (#+)]]
[data
diff --git a/stdlib/source/test/lux/type/resource.lux b/stdlib/source/test/lux/type/resource.lux
index 15d7cd137..293629e18 100644
--- a/stdlib/source/test/lux/type/resource.lux
+++ b/stdlib/source/test/lux/type/resource.lux
@@ -3,7 +3,7 @@
data/text/format
["r" math/random (#+ Random)]
["_" test (#+ Test)]
- [control
+ [abstract
[monad
[indexed (#+ do)]]]
["." io]]
diff --git a/stdlib/source/test/lux/world/binary.lux b/stdlib/source/test/lux/world/binary.lux
index 2e463ea4b..a9817115d 100644
--- a/stdlib/source/test/lux/world/binary.lux
+++ b/stdlib/source/test/lux/world/binary.lux
@@ -3,7 +3,8 @@
data/text/format
["r" math/random (#+ Random)]
["_" test (#+ Test)]
- [control ["." monad (#+ do)]
+ [abstract
+ ["." monad (#+ do)]
{[0 #test]
[/
["$." equivalence]]}]
diff --git a/stdlib/source/test/lux/world/file.lux b/stdlib/source/test/lux/world/file.lux
index e27add632..86b031660 100644
--- a/stdlib/source/test/lux/world/file.lux
+++ b/stdlib/source/test/lux/world/file.lux
@@ -3,8 +3,8 @@
data/text/format
["r" math/random (#+ Random) ("#@." monad)]
["_" test (#+ Test)]
+ [abstract/monad (#+ do)]
[control
- ["." monad (#+ do)]
[concurrency
["." promise]]
[security
diff --git a/stdlib/source/test/lux/world/net/tcp.lux b/stdlib/source/test/lux/world/net/tcp.lux
index f7ec2eaef..b3f9a6d0d 100644
--- a/stdlib/source/test/lux/world/net/tcp.lux
+++ b/stdlib/source/test/lux/world/net/tcp.lux
@@ -3,7 +3,7 @@
data/text/format
["r" math/random (#+ Random)]
["_" test (#+ Test)]
- [control ["." monad (#+ do)]]
+ ["." abstract/monad (#+ do)]
["." io (#+ IO)]
[control
["ex" exception (#+ exception:)]
diff --git a/stdlib/source/test/lux/world/net/udp.lux b/stdlib/source/test/lux/world/net/udp.lux
index 1740c861c..2e61257ad 100644
--- a/stdlib/source/test/lux/world/net/udp.lux
+++ b/stdlib/source/test/lux/world/net/udp.lux
@@ -3,8 +3,8 @@
data/text/format
["r" math/random (#+ Random)]
["_" test (#+ Test)]
+ ["." abstract/monad (#+ do)]
[control
- ["." monad (#+ do)]
[concurrency
["." promise]]
[security