cairnlang-core 0.5.0

Cairn core: content-addressed AST store, the single type/confidence/effect checker, projection renderer, and WASM lowering. Owns the model.
Documentation
//! Cairn core.
//!
//! Owns the model. Every other crate in the workspace is a thin front end over
//! this one and never re-implements or bypasses checking (see `docs/design.md`
//! Section 7). v0.1 build step 1 — the content-addressed AST store — lives in
//! [`node`] and [`store`]. Later steps add the checker, renderer, and WASM
//! lowering on top of this.

pub mod check;
pub mod edit;
pub mod json;
pub mod live;
pub mod node;
pub mod render;
pub mod scaffold;
pub mod stdlib;
pub mod store;
pub mod ty;
pub mod wasm;
pub mod web;

pub use check::{Checker, Failures, Report, Status, Violation};
pub use edit::{
    EditError, Editor, ExprSpec, FunctionSpec, HoleInfo, ModuleSpec, SignatureInfo, StepSpec,
    TypeDefSpec,
};
pub use node::{BinOp, MatchArm, Node, NodeHash, Param, Produces};
pub use render::{node_at, render, render_addressed, Addressed, Span};
pub use scaffold::{AppSpec, EntitySpec, FieldKind, FieldSpec};
pub use store::{Materialized, Store, FORMAT_VERSION};
pub use live::{serve_http_live, LiveHub};
pub use ty::{Confidence, Effect, Type};
pub use wasm::{
    drain_published, drain_resp_headers, lower, run_effectful_i64, run_fallible, run_i64,
    serve_http, serve_http_db, serve_once, serve_request, serve_request_db, serve_request_db_h,
    serve_request_h, HttpResponse, LowerError, RunError,
};

/// Crate marker. Kept so the front-end crates have a stable symbol to depend on
/// until they call real `core` API.
pub const CRATE: &str = "cairn-core";