Skip to main content

gleam.toml

name = "girard"
version = "1.1.1"
description = "A type annotator for Gleam, written in Gleam: it runs Hindley-Milner inference mirroring the real compiler and reports the inferred type of every expression."
licences = ["Apache-2.0"]
repository = { type = "github", user = "alvivi", repo = "girard" }
gleam = ">= 1.15.0"

[documentation]
pages = [{ title = "Changelog", path = "changelog.html", source = "CHANGELOG.md" }]

[dependencies]
gleam_stdlib = ">= 0.44.0 and < 2.0.0"
glance = ">= 6.0.0 and < 7.0.0"
simplifile = ">= 2.4.0 and < 3.0.0"
argv = ">= 1.1.0 and < 2.0.0"

[dev_dependencies]
gleeunit = ">= 1.0.0 and < 2.0.0"
glinter = ">= 2.19.0 and < 3.0.0"
# Decoding the patched compiler's oracle JSON in dev/girard/diff and the oracle
# test — not used by the library itself.
gleam_json = ">= 3.1.0 and < 4.0.0"

# Linter config. Run with `gleam run -m glinter`.
# We lint the library (src/) only: gleeunit tests are public, un-annotated, and
# unused by other modules by convention, which trips several rules.
[tools.glinter]
include = ["src/"]
# Any remaining warning fails the lint (CI runs `gleam run -m glinter`).
warnings_as_errors = true

[tools.glinter.rules]
# Dict.get and friends return Result(_, Nil); the discarded error carries no
# information and is handled in the Error(_) case, so this is a false positive.
thrown_away_error = "off"
# Labels are stylistic here; flagging every multi-argument call is too noisy.
label_possible = "off"
# girard is a library: its public API (`annotate*`, `disk_resolver`,
# `describe_error`, …) is called by consumers, never by another module in this
# package, so this rule is a false positive here.
unused_exports = "off"