//! Stage 4 — Evaluation implementations.
//!
//! Concrete implementations of the [`Evaluator`](crate::pipeline::traits::Evaluator)
//! and [`SemanticsSolver`](crate::pipeline::traits::SemanticsSolver) traits.
//!
//! ## Evaluators
//!
//! | Implementation | Approach |
//! |----------------|----------|
//! | [`classical::ClassicalEvaluator`] | Defeat + abstract framework + solver delegation |
//! | [`accrual::AccrualEvaluator`] | Prakken (2019) fixpoint with set-level preferences |
//!
//! ## Semantics solvers (used inside `ClassicalEvaluator`)
//!
//! | Implementation | Backend | Feature |
//! |----------------|---------|---------|
//! | [`naive_solver::NaiveEnumerationSolver`] | Subset enumeration | — |
//! | [`sat_solver::SatSolver`] | Propositional SAT (BatSat/CaDiCaL) | `sat` / `cadical` |
//! | [`scc_solver::SccDecomposingSolver`] | SCC decomposition + inner solver | `sat` |
//! | [`aspartix_solver::AspartixSolver`] | External clingo | `aspartix` |
//! | [`iccma_solver::IccmaSolver`] | External ICCMA solver | `iccma` |

pub mod accrual;
#[cfg(feature = "aspartix")]
pub mod aspartix_solver;
pub mod classical;
#[cfg(any(feature = "aspartix", feature = "iccma"))]
pub mod external;
#[cfg(feature = "iccma")]
pub mod iccma_solver;
pub mod naive_solver;
#[cfg(feature = "sat")]
pub mod sat_solver;
#[cfg(feature = "sat")]
pub mod scc_solver;
