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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
//! Typed Optimization Combinators
//!
//! This module provides **explicit, opt-in** optimization combinators that
//! leverage effect type information for safety guarantees.
//!
//! # Design Philosophy
//!
//! Nexus does NOT automatically optimize your code. Instead, it provides
//! typed combinators that:
//!
//! 1. **Require explicit use** — You choose when to apply optimizations
//! 2. **Enforce preconditions** — The type system prevents unsafe usage
//! 3. **Document trade-offs** — Each combinator states its requirements
//!
//! # Available Optimizations
//!
//! | Combinator | Requirement | What It Does |
//! |------------|-------------|--------------|
//! | `par_map` | Pure effects only | Parallel mapping (type-safe) |
//! | `memoize` | Idempotent effects | Caching with configurable strategy |
//! | `speculative` | Total effects | Run multiple branches, take first success |
//! | `fuse` | Commutative effects | Combine operations |
//!
//! # Type Safety
//!
//! The type system enforces that optimizations are only applied when safe:
//!
//! ```rust
//! use ordofp_core::nexus::pure;
//! use ordofp_core::nexus::optim::par_map;
//!
//! // This compiles - Pure effects can be parallelized
//! let items = vec![1, 2, 3];
//! let results = par_map(&items, |x| pure(x * 2));
//! assert_eq!(results, vec![2, 4, 6]);
//!
//! // This does NOT compile - State effects cannot be parallelized
//! // let results = par_map(&items, |x| state_modify(|s| s + x));
//! // ^^^^^^^ Error: Row<STATE_BIT> does not implement ParallelSafe
//! ```
//!
//! # Limitations
//!
//! - **No automatic insertion** — You must call combinators explicitly
//! - **No cross-function analysis** — Optimization scope is local
//! - **No compiler integration** — These are library-level abstractions
//! - **Parallel execution** — Currently sequential; requires rayon integration
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;