mod parallel;
mod sequential;
pub use parallel::*;
pub use sequential::*;
use crate::{DefaultMDDLEL, EmptyCache, SimpleCache, DefaultMDDFC, Pooled};
pub type DefaultSolver<'a, State> = ParNoCachingSolverLel<'a, State>;
pub type DefaultCachingSolver<'a, State> = ParCachingSolverFc<'a, State>;
pub type ParNoCachingSolverLel<'a, State> = ParallelSolver<'a, State, DefaultMDDLEL<State>, EmptyCache<State>>;
pub type ParNoCachingSolverFc<'a, State> = ParallelSolver<'a, State, DefaultMDDFC<State>, EmptyCache<State>>;
pub type ParNoCachingSolverPooled<'a, State>= ParallelSolver<'a, State, Pooled<State>, EmptyCache<State>>;
pub type ParCachingSolverLel<'a, State> = ParallelSolver<'a, State, DefaultMDDLEL<State>, SimpleCache<State>>;
pub type ParCachingSolverFc<'a, State> = ParallelSolver<'a, State, DefaultMDDFC<State>, SimpleCache<State>>;
pub type ParCachingSolverPooled<'a, State>= ParallelSolver<'a, State, Pooled<State>, SimpleCache<State>>;
pub type SeqNoCachingSolverLel<'a, State> = SequentialSolver<'a, State, DefaultMDDLEL<State>, EmptyCache<State>>;
pub type SeqNoCachingSolverFc<'a, State> = SequentialSolver<'a, State, DefaultMDDFC<State>, EmptyCache<State>>;
pub type SeqNoCachingSolverPooled<'a, State>= SequentialSolver<'a, State, Pooled<State>, EmptyCache<State>>;
pub type SeqCachingSolverLel<'a, State> = SequentialSolver<'a, State, DefaultMDDLEL<State>, SimpleCache<State>>;
pub type SeqCachingSolverFc<'a, State> = SequentialSolver<'a, State, DefaultMDDFC<State>, SimpleCache<State>>;
pub type SeqCachingSolverPooled<'a, State>= SequentialSolver<'a, State, Pooled<State>, SimpleCache<State>>;