Evolve the graph system toward a proper IR (intermediate representation).
Phase 1 - Applicative Detection:
- Add Applicative instance that detects parallel structure
- Auto-parallelize expressions like: (,) <$> fork x <*> fork y
Phase 2 - Compile Phase:
- Separate "build graph" from "execute graph"
- Enable optimization passes between phases
Phase 3 - Optimization:
- Fuse adjacent inferences
- Eliminate dead branches
- Schedule for parallelism
See: Omni/Agent/Graph/IR.md (theoretical foundation)