# `Beaver.MLIR.Pass`

This module defines functions working with MLIR Pass.

# `state`

```elixir
@type state() :: any()
```

# `t`

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

# `clone`
*optional* 

```elixir
@callback clone(state :: state()) :: state()
```

# `construct`
*optional* 

```elixir
@callback construct(state :: state()) :: state()
```

# `destruct`
*optional* 

```elixir
@callback destruct(state :: state()) :: any()
```

# `initialize`
*optional* 

```elixir
@callback initialize(ctx :: Beaver.MLIR.Context.t(), state :: state()) ::
  {:ok, state()} | {:error, state()}
```

# `run`

```elixir
@callback run(op :: Beaver.MLIR.Operation.t(), state :: state()) :: state()
```

# `create`

# `make`

