# `ExDatalog.IR.Constraint`
[🔗](https://github.com/thanos/ex_datalog/blob/v0.5.0/lib/ex_datalog/ir.ex#L126)

An IR constraint: a comparison or arithmetic predicate.

Comparison constraints have `result: nil`. Arithmetic constraints have
`result: {:var, name}`.

# `t`

```elixir
@type t() :: %ExDatalog.IR.Constraint{
  left: ExDatalog.IR.ir_term(),
  op: ExDatalog.Constraint.op(),
  result: ExDatalog.IR.ir_term() | nil,
  right: ExDatalog.IR.ir_term()
}
```

# `serialize`

```elixir
@spec serialize(t()) :: map()
```

---

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