Skip to main content

praxis_stdlib/
lib.rs

1//! The method catalog schema and the Praxis prelude (§16).
2//!
3//! The single source of truth for what built-in methods exist, what their
4//! types are, and how they lower to runtime symbols or intrinsics. Per the
5//! design's hard rule (§20, rule 3: "never duplicate type or method knowledge
6//! between compiler and LSP"), the type checker, HIR lowering, code generator,
7//! documentation generator, and language-server completion all consume *this*
8//! catalog. So the schema has to carry everything each of those consumers needs
9//! in one place (§16.2).
10
11pub mod abi;
12pub mod builtins;
13pub mod capability;
14pub mod catalog;
15pub mod completion;
16pub mod prelude;
17pub mod type_pattern;
18
19pub use builtins::builtin_catalog;
20pub use capability::CapKind;
21pub use catalog::{MethodCatalog, MethodCatalogError, MethodEntry, MethodLowering, Purity};
22pub use completion::{CompletionItem, completion_data};
23pub use prelude::{
24    BUILTIN_TYPES, GRAPH_HELPERS, GraphHelper, GraphParam, GraphResult, NUMERIC_HELPERS,
25    NumericHelper, PRELUDE, SIZED_CTORS, SizedCtor, TypeEntry, graph_helper, numeric_helper,
26    prelude_doc, sized_ctor, type_doc,
27};
28pub use type_pattern::{
29    Bound, CollectionCtor, PIPELINE_RECEIVERS, TypePattern, is_pipeline_receiver, pattern_matches,
30};