# batata v0.1.0 - Table of Contents

> An Elixir-to-native compiler built on Beaver and the ex dialect.

## Pages

- [Batata](readme.md)

## Modules

- [Batata.Lower](Batata.Lower.md): Lowers `ex` dialect IR to `func`/`arith`/`scf`/`cf` and then to LLVM.

- Compiler
  - [Batata](Batata.md): An Elixir-to-native compiler built on [Beaver](https://github.com/beaver-lodge/beaver)
and the Slang-defined `ex` dialect.

- Frontend
  - [Batata.Frontend](Batata.Frontend.md): Normalized boundary for already-expanded Elixir modules.
  - [Batata.Frontend.Clause](Batata.Frontend.Clause.md): One function clause with patterns and a body AST.
  - [Batata.Frontend.Definition](Batata.Frontend.Definition.md): One normalized function definition with one or more clauses.
  - [Batata.Frontend.Module](Batata.Frontend.Module.md): A normalized module snapshot at the expanded-module boundary.
  - [Batata.Frontend.UnsupportedForm](Batata.Frontend.UnsupportedForm.md): A module-body form outside the frontend boundary.

- Lift
  - [Batata.Lift](Batata.Lift.md): Lifts a `Batata.Frontend` module snapshot into `ex` dialect IR.

- Exceptions
  - [Batata.Lift.Error](Batata.Lift.Error.md): Raised when the frontend encounters an unsupported AST form.

