Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.3.0 - 2026-04-07
Added
- Cross-module effect propagation: inferred effects from sibling project modules are used when analyzing other modules in the same project. Two-pass inference resolves inter-module dependencies.
0.2.0 - 2026-04-07
Added
- Catalog entry for
gleam_time(all modules pure;system_time,local_offset,utc_offsetmarked[Time]). - Catalog entry for
houdini(fully pure). - Automatic effect inference for path dependencies declared in
gleam.toml. Functions from local path deps are now inferred from source instead of being marked[Unknown]. - Path dependency inference loads existing
.gradedfiles for parameter bounds, improving accuracy for higher-order functions. - Two-pass inference for path dependencies so cross-dep calls resolve correctly.
Fixed
- Record constructors (
Ok,Error,Some, custom types) no longer inferred as[Unknown]. Gleam constructors start with an uppercase letter and are always pure.
0.1.0 - 2025-04-04
Added
- Effect checker for Gleam via sidecar
.gradedannotation files. graded checkcommand to enforcecheckannotations.graded infercommand to infer and writeeffectsannotations.graded formatcommand with--checkand--stdinmodes.- Higher-order effect tracking with parameter bounds.
- Field call effect tracking with type-aware resolution.
- External effect declarations for third-party functions.
- Wildcard effect
[_]as the universal top element. - Warnings for function references passed as values with known effects.
- Versioned catalog system resolved against
manifest.toml. - Catalog entries for
gleam_stdlib,gleam_erlang,gleam_otp,gleam_http,gleam_httpc,gleam_json,gleam_regexp,gleam_yielder,gleam_crypto,lustre,lustre_http,simplifile,filepath,tom.