# `Beaver.MLIR.ConversionPattern`

Callback-backed dialect conversion patterns.

`add/5` creates a pattern and immediately transfers its ownership to the
rewrite pattern set, so a standalone native pattern cannot be leaked.

# `callback`

```elixir
@type callback() :: (Beaver.MLIR.Operation.t(),
               [Beaver.MLIR.Value.t()]
               | [[Beaver.MLIR.Value.t()]],
               Beaver.MLIR.ConversionPatternRewriter.t() -&gt;
                 :ok | :no_match | {:error, term()})
```

# `t`

```elixir
@type t() :: %Beaver.MLIR.ConversionPattern{ref: term()}
```

# `add`

```elixir
@spec add(
  Beaver.MLIR.RewritePatternSet.t(),
  String.Chars.t(),
  Beaver.MLIR.TypeConverter.t(),
  callback(),
  keyword()
) :: Beaver.MLIR.RewritePatternSet.t()
```

# `make`

