aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux/tool/compiler/meta/archive.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/library/lux/tool/compiler/meta/archive.lux')
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/archive.lux9
1 files changed, 9 insertions, 0 deletions
diff --git a/stdlib/source/library/lux/tool/compiler/meta/archive.lux b/stdlib/source/library/lux/tool/compiler/meta/archive.lux
index cbcdd36b3..c09aff7e6 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/archive.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/archive.lux
@@ -5,6 +5,7 @@
["[0]" equivalence {"+" Equivalence}]
["[0]" monad {"+" do}]]
[control
+ ["[0]" maybe]
["[0]" try {"+" Try}]
["[0]" exception {"+" exception:}]
["[0]" function]
@@ -132,6 +133,14 @@
{.#None}
(exception.except ..module_must_be_reserved_before_it_can_be_added [module]))))
+ (def: .public entries
+ (-> Archive (List [Module [ID [Descriptor (Document Any) Output]]]))
+ (|>> :representation
+ (value@ #resolver)
+ dictionary.entries
+ (list.all (function (_ [module [module_id entry]])
+ (# maybe.monad each (|>> [module_id] [module]) entry)))))
+
(def: .public (find module archive)
(-> Module Archive (Try [Descriptor (Document Any) Output]))
(let [(^open "_[0]") (:representation archive)]