# Install one-ml with Homebrew

Reboot of ML, unifying its core and (now first-class) module layers. Version 0.1 via Homebrew; verified 2026-07-11.

## Install

```sh
sudo av install brew:one-ml
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install one-ml
```

  Evidence: local Homebrew formula metadata

## Package facts

- **Package key:** brew:one-ml
- **Package manager:** Homebrew
- **Version:** 0.1
- **Source summary:** Reboot of ML, unifying its core and (now first-class) module layers
- **Homepage:** <https://people.mpi-sws.org/~rossberg/1ml/>
- **Last updated:** 2026-07-11T09:50:48+09:00
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- 1ml (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 0.1
## Project history and usage

1ML is Andreas Rossberg's research reboot of ML that treats first-class modules as the starting point and collapses the traditional split between ML's core language and module language into one small language.

### Project history

The 1ML line began as a research language and prototype interpreter tied to Rossberg's work on modules. The project page lists the original ICFP 2015 paper, an extended 2015 version with technical appendix, a 2016 extension with effect and generativity polymorphism, and a revised Journal of Functional Programming article published in 2018.

The GitHub repository describes the code as a 2014 toy interpreter, written mainly to experiment with 1ML type checking. Its README is explicit about the prototype's limits: it is basic, omits many features expected from a real ML, has basic error messages, and implements type checking naively.

### Adoption history

1ML's adoption is primarily academic and experimental rather than production-language adoption. Homebrew packages the prototype as one-ml, making the 1ml executable easy to install for people who want to run examples from the papers or inspect the type-system design.

### How it is used

Developers use the 1ml executable either as an interactive prompt or against .1ml files, often with the bundled prelude. The practical workflow is exploration: load the prelude, evaluate bindings, inspect type-checking behavior, and compare programs with the examples from the papers.

### Why package nerds care

For package nerds, one-ml is a rare packaged research artifact: a runnable slice of programming-language theory where the package is not a general runtime so much as an executable companion to a type-system proposal.

### Timeline

- 2014: the prototype interpreter README identifies the code as a 2014 proof-of-concept.
- 2015: Rossberg's 1ML paper appeared at ICFP, with an extended version in the same year.
- 2016: the project page lists 1ML with Special Effects as a WadlerFest extension.
- 2018: the revised and expanded 1ML article appeared in Journal of Functional Programming.

### Sources

- <https://formulae.brew.sh/formula/one-ml>
- <https://github.com/rossberg/1ml>
- <https://people.mpi-sws.org/~rossberg/1ml/>
- <https://www.cambridge.org/core/journals/journal-of-functional-programming/article/1ml-core-and-modules-united/47B10882829E4B32F98FBA93B28CEF30>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals


## Combined YAML source

View the package source record on GitHub. [combined/one-ml.yml](https://github.com/mxcl/pkgdb/blob/main/combined/one-ml.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- cross-ecosystem install command graph
