use crate::decision_variable::VariableID;
#[non_exhaustive]
#[derive(Debug, Clone, PartialEq, Eq, thiserror::Error)]
pub enum SubstitutionError {
#[error("Recursive assignment detected: variable {var_id} cannot be assigned to a function that depends on itself")]
RecursiveAssignment { var_id: VariableID },
#[error("Cyclic assignment detected: circular dependency found in variable assignments")]
CyclicAssignmentDetected,
}