diff options
Diffstat (limited to 'stdlib/source/library/lux/tool/compiler/meta/archive.lux')
-rw-r--r-- | stdlib/source/library/lux/tool/compiler/meta/archive.lux | 9 |
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)] |