## Quick Example (Polars)
```rust
use invars::prelude::*;
use polars::prelude::*;
fn main() -> Result<(), Box<dyn std::error::Error>> {
// Create a DataFrame
let df = df! {
"age" => [18, 25, 130],
}?;
// Define an invariant: age must be between 0 and 120
let invariant = Invariant::new(
"age_between".to_string().try_into()?,
PolarsKind::ValueBetween,
Scope::Column { name: "age".into() },
)
.with_param("min", "0")
.with_param("max", "120");
// Run the engine
let engine = EnginePolarsDataFrame::default();
let violations = engine.evaluate(&df, vec![invariant])?;
// Print violations (optional)
println!("{:?}", violations);
Ok(())
}
```