///|
/// Errors raised when physical inputs or numerical tables are invalid.
pub(all) suberror ExtractionError {
  InvalidFraction(name~ : String, value~ : Double)
  InvalidFlow(name~ : String, value~ : Double)
  InvalidCoefficient(name~ : String, value~ : Double)
  InvalidComposition(total~ : Double)
  InsufficientData(required~ : Int, actual~ : Int)
  UnsortedData(index~ : Int)
  DuplicateCoordinate(value~ : Double)
  OutOfRange(name~ : String, value~ : Double, lower~ : Double, upper~ : Double)
  SingularBalance(context~ : String)
  ConvergenceFailure(iterations~ : Int, residual~ : Double)
  InvalidArgument(message~ : String)
} derive(Debug, Eq)