packages feed

moonlight-core-0.1.0.2: README.md

# moonlight-core

> Part of **Moonlight**, the sheaf-theoretic computation layer beneath
> [Melusine](https://bluerose.blue) and Pale Meridian.

`moonlight-core` is Moonlight's foundation tier. The front door is the total
umbrella module `Moonlight.Core`; its header carries the contract, the API map,
and the worked recipes. This page is the dependency map and the build commands.

## Surface & boundaries

Most downstream code imports the umbrella. Lower-level packages may depend on one
of the public sublibraries.

| Cabal dependency | Import | What you get |
| --- | --- | --- |
| `moonlight-core` | `Moonlight.Core` | The ordinary total vocabulary. This is the default. |
| `moonlight-core:moonlight-core-syntax` | `Moonlight.Core.Pattern.AntiUnify` | Patterns and term anti-unification without the full umbrella. |
| `moonlight-core:moonlight-core-automata` | `Moonlight.Core.Pattern.Automata` or `.Kernel` | The bottom-up automata substrate and compiled matcher. Depend on syntax too when naming its types directly. |
| `moonlight-core:moonlight-core-egraph-program` | `Moonlight.Core.EGraph.Program` | The host-neutral e-graph program algebra without the rest of the foundation. |
| `moonlight-core` | `Moonlight.Core.Unsound` | The explicit trust boundary. |

The private implementation slices remain **basis**, **numeric**, **solver**, and
**term**. Syntax, automata, and e-graph programs are public because other foundation
packages consume those exact owners. The umbrella re-exports the
syntax and e-graph-program vocabulary; automata are imported only through the sublibrary.

## Test

```bash
cabal test moonlight-core:moonlight-core-test
```

## Benchmarks

```bash
cabal bench moonlight-core:moonlight-core-bench --benchmark-options='--timeout=2s --csv=comparison.csv'
```

`hackage:` rows measure a package-level baseline (`containers`, `memory`, `scientific`,
`equivalence`) on the same fixture; `world:` rows are source-equivalent baselines where
no package owner exists. Fixtures assert result agreement with the baseline before
timing. Dated receipts live in `docs/BENCHMARKS-m4-pro.md`.

## License

MIT. See `LICENSE`.