1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//! # logicaffeine-base
//!
//! Pure structural atoms for the logicaffeine ecosystem.
//!
//! This crate provides the foundational types used throughout logicaffeine:
//!
//! - [`Arena`] — Bump allocation for stable AST references
//! - [`Interner`]/[`Symbol`] — String interning for O(1) equality
//! - [`Span`] — Source location tracking
//! - [`SpannedError`]/[`Result`] — Errors with source positions
//!
//! # Design Principles
//!
//! This crate has **no knowledge of English vocabulary or I/O**. It provides
//! only generic, reusable infrastructure that higher-level crates build upon.
//!
//! # Example
//!
//! ```
//! use logicaffeine_base::{Arena, Interner, Span};
//!
//! let arena: Arena<&str> = Arena::new();
//! let mut interner = Interner::new();
//!
//! let hello = interner.intern("hello");
//! let span = Span::new(0, 5);
//!
//! let allocated = arena.alloc("hello");
//! assert_eq!(*allocated, "hello");
//! ```
pub use Arena;
pub use ;
pub use Span;
pub use ;