# `ExDatalog.Constraints.Comparison`
[🔗](https://github.com/thanos/ex_datalog/blob/v0.5.0/lib/ex_datalog/constraints/comparison.ex#L1)

Comparison constraint implementation for the Constraint behaviour.

Evaluates comparison constraints (`:gt`, `:lt`, `:gte`, `:lte`, `:eq`,
`:neq`) which filter bindings without introducing new variable bindings.

This module is the canonical evaluator for comparison operations. It is
dispatched to by `ExDatalog.Constraint.evaluate/3` when the constraint's
`op` is one of the comparison operators.

# `evaluate`

```elixir
@spec evaluate(
  ExDatalog.IR.Constraint.t(),
  ExDatalog.Engine.Binding.t(),
  ExDatalog.Constraint.Context.t()
) :: {:ok, ExDatalog.Engine.Binding.t()} | :filter
```

Evaluates a comparison constraint against a binding environment.

Accepts an `IR.Constraint` struct as produced by the compiler. Returns
`{:ok, binding}` (unchanged) when the comparison succeeds, or `:filter`
when it fails or an input variable is unbound.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
